# Table of Contents - [Documentation](#documentation) - [Rapyd Issuing](#rapyd-issuing) - [Billing](#billing) - [Get Started](#get-started) - [Product Guide](#product-guide) - [Uploading a Mass Payment File](#uploading-a-mass-payment-file) - [Subscriptions](#subscriptions) - [Creating Mass Payments](#creating-mass-payments) - [Rapyd Collect](#rapyd-collect) - [Rapyd Platforms](#rapyd-platforms) - [Payment Method Types](#payment-method-types) - [Client Portal Guide](#client-portal-guide) - [Payment With FX](#payment-with-fx) - [Payout Method Types](#payout-method-types) - [Collect](#collect) - [Supported Currencies](#supported-currencies) - [Payout With FX](#payout-with-fx) - [Funding a Wallet](#funding-a-wallet) - [Payment Features](#payment-features) - [Creating a Mass Payment File](#creating-a-mass-payment-file) - [Moving Funds Between Wallets](#moving-funds-between-wallets) - [Request Signatures](#request-signatures) - [Rapyd Checkout Overview](#rapyd-checkout-overview) - [Accessing the Client Portal](#accessing-the-client-portal) - [Virtual Accounts](#virtual-accounts) - [Product Changelog](#product-changelog) - [Reports](#reports) - [My Account](#my-account) - [Create Plan](#create-plan) - [Downloading a Sample Mass Payment File](#downloading-a-sample-mass-payment-file) - [Create Subscription](#create-subscription) - [List Payment Methods by Country](#list-payment-methods-by-country) - [Payment Method Type](#payment-method-type) - [Get Payment Method Required Fields](#get-payment-method-required-fields) - [Create Customer](#create-customer) - [Create Card Token](#create-card-token) - [Update Customer](#update-customer) - [Create Product](#create-product) - [Subscription](#subscription) - [Mass Payouts](#mass-payouts) - [Rapyd Protect Overview](#rapyd-protect-overview) - [Payment Features](#payment-features) - [Integrate Payment Methods](#integrate-payment-methods) - [Create Subscription by Hosted Page](#create-subscription-by-hosted-page) - [Rapyd Disburse Features](#rapyd-disburse-features) - [Rapyd Disburse](#rapyd-disburse) - [Plugins and Add-Ons](#plugins-and-add-ons) - [Get FX Rate](#get-fx-rate) - [Create Payout](#create-payout) - [Confirm Payout with FX](#confirm-payout-with-fx) - [Creating a Rapyd Wallet](#creating-a-rapyd-wallet) - [Create Payment](#create-payment) - [Create Wallet](#create-wallet) - [List Payout Method Types](#list-payout-method-types) - [Get Payout Required Fields](#get-payout-required-fields) - [Rapyd Wallet](#rapyd-wallet) - [Funding Your Account via Client Portal](#funding-your-account-via-client-portal) - [Complete Payout](#complete-payout) - [Deposit Completed Webhook](#deposit-completed-webhook) - [Defining a Webhook Endpoint](#defining-a-webhook-endpoint) - [Payout Completed Webhook](#payout-completed-webhook) - [API Reference](#api-reference) - [Wallet Features](#wallet-features) - [Developer Resources](#developer-resources) - [Authentication](#authentication) - [Header Parameters](#header-parameters) - [Developers](#developers) - [Webhook Authentication](#webhook-authentication) - [Transfer Funds Between Wallets](#transfer-funds-between-wallets) - [List Virtual Accounts by Rapyd Wallet](#list-virtual-accounts-by-rapyd-wallet) - [Webhooks](#webhooks) - [Localization Methods](#localization-methods) - [Issue Virtual Account to Wallet](#issue-virtual-account-to-wallet) - [Set Transfer Response](#set-transfer-response) - [Hosted Checkout Page Integration](#hosted-checkout-page-integration) - [Listing Disputes](#listing-disputes) - [Checkout Toolkit Integration](#checkout-toolkit-integration) - [Downloading a Fraudulent Transactions Report](#downloading-a-fraudulent-transactions-report) - [Bank Payout United States](#bank-payout-united-states) - [Hosted Beneficiary Details Page](#hosted-beneficiary-details-page) - [Creating a Dispute](#creating-a-dispute) - [Rapyd Collect](#rapyd-collect) - [Card Eligibility for Card Payouts](#card-eligibility-for-card-payouts) - [Subscription](#subscription) - [Local Bank Payout](#local-bank-payout) - [Plan](#plan) - [Bank Payout Bulgaria](#bank-payout-bulgaria) - [Update Plan](#update-plan) - [Bank Payout United Arab Emirates](#bank-payout-united-arab-emirates) - [Idempotency](#idempotency) - [Update Subscription](#update-subscription) - [Bank Payout Poland](#bank-payout-poland) - [Invoice Created Webhook](#invoice-created-webhook) - [Invoice Finalized Webhook](#invoice-finalized-webhook) - [Metadata](#metadata) - [Bank Payout Czech Republic](#bank-payout-czech-republic) - [Add Payment Method to Customer](#add-payment-method-to-customer) - [Bank Payout Hungary](#bank-payout-hungary) - [Invoice Payment Created Webhook](#invoice-payment-created-webhook) - [Customer](#customer) - [Bank Payout Romania](#bank-payout-romania) - [Invoice Payment Failed Webhook](#invoice-payment-failed-webhook) - [Payment Method Errors](#payment-method-errors) - [Bank Payout Denmark](#bank-payout-denmark) - [Invoice Payment Succeeded Webhook](#invoice-payment-succeeded-webhook) - [Simulating 3DS Authentication](#simulating-3ds-authentication) - [Card Token](#card-token) - [Bank Payout Sweden](#bank-payout-sweden) - [New Cycle Started Webhook](#new-cycle-started-webhook) - [Customer Created Webhook](#customer-created-webhook) - [Bank Payout Norway](#bank-payout-norway) - [Payment Completed Webhook](#payment-completed-webhook) - [Card Added Successfully Webhook](#card-added-successfully-webhook) - [Customer Payment Method Created Webhook](#customer-payment-method-created-webhook) - [Create Address](#create-address) - [Plan Errors](#plan-errors) - [Product](#product) - [Hosted Save Card Details Page](#hosted-save-card-details-page) - [Payment Failed Webhook](#payment-failed-webhook) - [Customer Updated Webhook](#customer-updated-webhook) - [Card Added Failure Webhook](#card-added-failure-webhook) - [Payment Succeeded Webhook](#payment-succeeded-webhook) - [Merchant Reconciliation Report](#merchant-reconciliation-report) - [Update Product](#update-product) - [Subscription Unpaid Webhook](#subscription-unpaid-webhook) - [Subscription - Hosted Page](#subscription-hosted-page) - [Activating Your Account (KYB)](#activating-your-account-kyb-) - [Create SKU](#create-sku) - [Subscription Past Due Webhook](#subscription-past-due-webhook) - [Payment Method Canceled Webhook](#payment-method-canceled-webhook) - [Payment Links](#payment-links) - [Subscription Item](#subscription-item) - [Subscription Updated Webhook](#subscription-updated-webhook) - [Deleting a Virtual Account](#deleting-a-virtual-account) - [List Countries](#list-countries) - [Saving a European Card While Creating a Payment](#saving-a-european-card-while-creating-a-payment) - [Trial Nearing End Webhook](#trial-nearing-end-webhook) - [Pix](#pix) - [Cancel Subscription](#cancel-subscription) - [List Supported Languages](#list-supported-languages) - [Checkout Page](#checkout-page) - [Payment Link](#payment-link) - [Digital Wallet Provisioning](#digital-wallet-provisioning) - [Create Checkout Page](#create-checkout-page) - [Viewing Details of a Wallet](#viewing-details-of-a-wallet) - [Customizing Your Hosted Page](#customizing-your-hosted-page) - [Plugins](#plugins) - [Previewing Wallet Details](#previewing-wallet-details) - [List Subscriptions](#list-subscriptions) - [Rapyd Payments App for WooCommerce](#rapyd-payments-app-for-woocommerce) - [Retrieve Subscription](#retrieve-subscription) - [Merchant Settlement Report](#merchant-settlement-report) - [Rapyd Payments Plugin for Wix](#rapyd-payments-plugin-for-wix) - [Delete Discount from Subscription](#delete-discount-from-subscription) - [Rapyd Payments Plugin for Shopify](#rapyd-payments-plugin-for-shopify) - [Subscription Canceled Webhook](#subscription-canceled-webhook) - [Rapyd Payments Plugin for Magento](#rapyd-payments-plugin-for-magento) - [Creating a Customer Support Ticket](#creating-a-customer-support-ticket) - [Save Card Details With Rapyd Checkout](#save-card-details-with-rapyd-checkout) - [Rapyd Payments App for Ecwid](#rapyd-payments-app-for-ecwid) - [Rapyd Payments Plugin for PrestaShop](#rapyd-payments-plugin-for-prestashop) - [Card Numbers for Testing](#card-numbers-for-testing) - [Create Subscription Item](#create-subscription-item) - [Subscription Errors](#subscription-errors) - [Rapyd Payments Plugin for OpenCart](#rapyd-payments-plugin-for-opencart) - [Hosted Subscription Checkout Page](#hosted-subscription-checkout-page) - [Listing Payments](#listing-payments) - [Update Subscription Item](#update-subscription-item) - [Authorizing a Card Transaction Remotely](#authorizing-a-card-transaction-remotely) - [Changing the Card Token Status](#changing-the-card-token-status) - [View Dispute Details](#view-dispute-details) - [Viewing Listed Transactions for Provisioned Cards](#viewing-listed-transactions-for-provisioned-cards) - [Submitting a Support Ticket](#submitting-a-support-ticket) - [External Network Tokenization](#external-network-tokenization) - [Bank Payout United Kingdom](#bank-payout-united-kingdom) - [Viewing Payout Methods](#viewing-payout-methods) - [Managing Your User Profile](#managing-your-user-profile) - [Rendimento](#rendimento) - [Rotating Your Plugin Keys](#rotating-your-plugin-keys) - [Payment Link Details](#payment-link-details) - [Changing a User's Role](#changing-a-user-s-role) - [Inviting a User](#inviting-a-user) - [Changing Your MFA Preference](#changing-your-mfa-preference) - [Downloading Your Proof of Account](#downloading-your-proof-of-account) - [Downloading Your Account Statement](#downloading-your-account-statement) - [Creating a Virtual Account](#creating-a-virtual-account) - [Approving Payouts](#approving-payouts) - [Bank Payout Ukraine](#bank-payout-ukraine) - [Failed Payments Report](#failed-payments-report) - [Creating a Wallet](#creating-a-wallet) - [Order Cards via Client Portal](#order-cards-via-client-portal) - [Viewing Subscription Invoice Details](#viewing-subscription-invoice-details) - [APAC](#apac) - [Create a Sender](#create-a-sender) - [Create a Beneficiary](#create-a-beneficiary) - [SWIFT Payout](#swift-payout) - [Create a Payout](#create-a-payout) - [Adding a Bank Account](#adding-a-bank-account) - [Viewing Payment Details](#viewing-payment-details) - [Rapyd Verify Hosted Page](#rapyd-verify-hosted-page) - [Create Beneficiary](#create-beneficiary) - [List Issued Card Transactions](#list-issued-card-transactions) - [Bank Payout Malaysia](#bank-payout-malaysia) - [Settings](#settings) - [Testing for Payment API](#testing-for-payment-api) - [Create Payment Link](#create-payment-link) - [Payout Tracker Link](#payout-tracker-link) - [Mobile Version](#mobile-version) - [Activating Your Rapyd Business Account](#activating-your-rapyd-business-account) - [Retrieve Apple Pay Session](#retrieve-apple-pay-session) - [Monthly Flat Fee](#monthly-flat-fee) - [Digital Wallet](#digital-wallet) - [Hosted Card Activation Page](#hosted-card-activation-page) - [Viewing Payment Methods](#viewing-payment-methods) - [Modifying Bank Account Details](#modifying-bank-account-details) - [Identity Verification](#identity-verification) - [Account Verification](#account-verification) - [Rotating Your API Keys](#rotating-your-api-keys) - [Reports Settings](#reports-settings) --- # Documentation [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation *  Documentation * [Next](index-en.html#idp215126) Documentation ------------- Immerse yourself in the world of payments, payouts, fund management, card issuing, virtual accounts, and beyond. With the support of our comprehensive documentation and fintech developer community, you’re well-equipped to lead the fintech revolution. Kickstart your journey with Rapyd, the comprehensive platform that links your business to preferred payment methods worldwide. [Get Started](get-started.html "Get Started") Rapyd Fintech Solutions Learn about our fintech solutions for developers that offer seamless integration of global payment capabilities, virtual accounts, card issuance, and disbursement functionalities, allowing independent or combined use for a fully customizable financial ecosystem. en/rapyd-collect.html Rapyd Collect Accept cards and hundreds of local payment methods in 100+ countries. Collect cash in 500,000 locations. Get paid into Virtual Accounts from 40+ countries and over 25 currencies. en/rapyd-disburse.html Rapyd Disburse Reduce your transfer and foreign exchange fees while paying out locally to any bank account in 190+ countries, push payments to debit cards and eWallets, and send cash to over 500,000 locations. en/rapyd-wallet.html Rapyd Wallet Hold funds in 70+ currencies. Transfer and manage your and your customers’ funds with a robust ledger system and sub-wallets, all on a single platform. Rapyd Payment Integrations Versatile integration options range from no-code and hosted solutions to a detailed developer API, catering to all user requirements and technical skill levels. en/api-reference.html API Reference Utilize Rapyd's REST API to seamlessly embed online payment processing functionality directly into your application en/rapyd-checkout-overview.html Checkout Rapyd Checkout provides a customizable, mobile-ready global payment solution, supporting over 900 methods with built-in fraud protection and multilingual support. en/payment-links.html Payment Links Rapyd's Payment Links allow the creation of reusable single payment request pages suitable for integration with various platforms such as SMS, WhatsApp, and emails. en/plugins.html Plugins Instantly connect hundreds of local payment methods to your shopping cart. Accept local payments on the world’s leading ecommerce platforms. Rapyd Compliance and Fraud Management Services Tools and services to help developers with compliance and fraud management to ensure secure and compliant transactions. en/rapyd-protect-overview.html Rapyd Protect Rapyd Protect is a free, AI-driven fraud management tool integrated into Rapyd's platform, allowing clients to identify, manage and prevent fraudulent activities effectively. en/rapyd-verify-hosted-page.html Rapyd Verify Rapyd Verify is a powerful tool for simplifying business verification, collecting essential KYB details via a hosted page, and subsequently approving or rejecting applications within the Rapyd platform. Discover the Diversity of Rapyd's Platform Solutions | | | | --- | --- | | **Rapyd Issuing** | Rapyd Issuing enables you to issue physical and virtual cards funded by a Rapyd Wallet.

[Learn More →](rapyd-issuing.html "Rapyd Issuing") | | **Billing** | With Rapyd Collect, you can create subscriptions (also known as recurring payments) as well as generate single or mass payments.

[Learn More About Billing →](billing.html "Billing")

[Learn About Subscriptions →](subscriptions.html "Subscriptions")

[Learn About Mass Payments →](creating-mass-payments.html "Creating Mass Payments") | | **Mass Payments** | A mass payment file includes a list of payments in a specific format. This file can then be uploaded to the Client Portal for processing.

[Learn More →](uploading-a-mass-payment-file.html "Uploading a Mass Payment File") | | **Reports** | Rapyd provides financial reports you can download from the Client Portal.

[Learn More →](reports-367106.html "Reports") | | **My Account** | My Account enables you to manage important information used by the Client Portal.

[Learn More →](my-account.html "My Account") | | **Product Changelog** | Product updates, enhancements, fixes, and additions.

[Learn More →](product-changelog.html "Product Changelog") | In this section: Search results -------------- No results found * [Next](index-en.html#idp215126) --- # Rapyd Issuing [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * Rapyd Issuing * [Prev](moving-funds-between-wallets.html#idp244529) * [Next](rapyd-issuing.html#idp244746) ### Rapyd Issuing Issue cards and bank accounts. | `Enterprise` Rapyd Issuing enables you to issue physical and virtual cards that are funded by a [Rapyd Wallet](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_rapyd_wallet "Rapyd Wallet") . The following pages illustrate options that you can offer through the issuing engine: en/cards.html Cards You can use cards for online purchases, in-store purchases, or to withdraw cash from an ATM. en/hosted-page-for-virtual-cards.html Hosted Page for Virtual Cards Securely display virtual cards on a hosted page. In this section: In Rapyd, an electronic wallet for receiving, storing and disbursing funds. Search results -------------- No results found * [Prev](moving-funds-between-wallets.html#idp244529) * [Next](rapyd-issuing.html#idp244746) --- # Billing [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Collect](rapyd-collect.html) * Billing * [Prev](ewallets.html#idp222015) * [Next](billing.html#idp222261) #### Billing With Rapyd Collect, you can create subscriptions (also known as recurring payments) and generate single or mass payments. Create Payments and Subscriptions With Rapyd Collect Subscriptions, also known as recurring payments, is an agreement between a customer and a merchant to pay for a product or service on a prearranged schedule. Payments are used to request a single payment after a one-time service has been completed. Mass payments, or batch payments, are a convenient way to generate multiple payments for multiple entities at one time. en/subscriptions.html Subscriptions Securely store one or more payment method details for each customer ID. en/generating-mass-payments.html Mass or Single Payments Use the Client Portal or the API to generate payments. In this section: Search results -------------- No results found * [Prev](ewallets.html#idp222015) * [Next](billing.html#idp222261) --- # Get Started [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * Get Started * [Prev](index-en.html#idp215215) * [Next](get-started.html#idp215275) Get Started ----------- As builders driven by efficiency and simplicity, you'll love Rapyd's flexible APIs and robust documentation that enable seamless integration of global financial services into your apps, fostering your growth within a community of sharp developers reshaping the fintech world. ### Overview en/account-setup.html Account Setup Kickstart your Rapyd journey by setting up an account, and get hands-on with some of our key features. Ready for the advanced stuff? Just reach out to our team and we'll get you geared up. en/make-your-first-api-call.html Make Your First API Call Step by step instructions to begin with Rapyd by testing in Postman, and calculating the Request Signature in any coding language. Find and input your API keys, before sending your request for a successful response. en/account-activation.html Account Activation Learn how to activate your account, understand the integration steps, and smoothly navigate the activation process. Bring your business into production and go-live with Rapyd. en/community-resources.html Community Resources Find helpful resources to build your integration, connect with the Rapyd Developer Community to ask questions and get answers directly from other developers and Rapyd team members. ### Use Cases Rapyd's practical use cases are developer lifesavers, offering real-world solutions to common challenges and unblocking your path to innovative and efficient fintech application development. Here are a few to get you started. en/card-payments.html Accept Payments Online Rapyd Collect is designed to enable ecommerce businesses to quickly accept hundreds of different payment methods from all over the world. en/mass-payouts-overview.html Mass Disbursement Rapyd Disburse has helped clients pay employees, contractors, or vendors anywhere in the world using payment methods that their beneficiary prefers. en/rapyd-checkout-overview.html eCommerce Now Rapyd Checkout shopping cart can be built in minutes. Built so small and medium sized merchants can accept local payment methods from all over the world. en/managing-escrow.html Escrow Now, Release Later For handling high value purchases, custom orders, or professional services - Rapyd escrow can hold and release funds creating better cash flow management. en/subscriptions.html Global Subscription Simplified Set up subscription services in countries with Rapyd Collect that prefer alternative payment methods such as direct debit, ewallets, cash, and vouchers. en/rapyd-wallet.html White Labeled Wallets With the Rapyd Wallet, our clients can create accounts in multiple countries and keep balances in different currencies. Additional Platforms and Features | | | | --- | --- | | [Rapyd Platforms](rapyd-platforms.html "Rapyd Platforms") | Get a snapshot of Rapyd's products. | | [Payment Methods](payment-method-types.html "Payment Method Types")
/ [Payout Methods](payout-method-types.html "Payout Method Types") | Discover hundreds of different payment and payout method types. | | [Supported Currencies](supported-currencies.html "Supported Currencies") | View any supported currency with Rapyd. | | [Client Portal Guide](client-portal-guide.html "Client Portal Guide") | Start navigating Rapyd's Client Portal features. | | [Request Signatures](request-signatures.html "Request Signatures") | Review the signature header parameter, and code for REST requests. | | [Checkout](rapyd-checkout-overview.html "Rapyd Checkout Overview") | Build, and customize your checkout page. | | [Rapyd Issuing](rapyd-issuing.html "Rapyd Issuing") | Issue cards and bank accounts. | In this section: Search results -------------- No results found * [Prev](index-en.html#idp215215) * [Next](get-started.html#idp215275) --- # Product Guide [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * Product Guide * [Prev](account-activation.html#idp215775) * [Next](product-guide.html#idp215784) Product Guide ------------- From payments to payouts, card issuing to virtual accounts, fraud protection to pre-built integrations - we've loaded this guide with everything you need to navigate the financial tech space. Go global with our solution that enables you to send and accept payments in local methods and currencies from almost anywhere. Product Guide Overview en/rapyd-collect.html Rapyd Collect With Rapyd Collect, you're not just using a tool; you're wielding a powerful API that lets you embed a comprehensive collection of payment methods into any application. Now you can effortlessly integrate everything from cards to bank transfers, eWallets to cash - the power to choose is in your hands. en/rapyd-disburse.html Rapyd Disburse At the heart of Rapyd Disburse is a powerful API that lets you incorporate a comprehensive range of payout options into any application. Whether it's bank transfers, card transfers, or eWallets, integrating your preferred payout methods is a breeze. en/rapyd-wallet.html Rapyd Wallet Underneath the hood of Rapyd Wallet is a powerful API, allowing you to seamlessly embed a wide range of financial services into any application. From managing balance and transaction history to executing transfers and making payments, the world is your oyster. en/rapyd-issuing.html Rapyd Issuing Rapyd Issuing is more than a service; it's a robust API that lets you seamlessly integrate card issuing and management capabilities into your application. From creating virtual or physical cards to handling transactions and managing limits, the possibilities are as wide as your imagination. Additional Resources | | | | --- | --- | | [Payment With FX](payment-with-fx.html "Payment With FX") | Create payments in your preferred currency. | | [Payout With FX](payout-with-fx.html "Payout With FX") | Create payouts in your preferred currency. | | [Subscriptions](subscriptions.html "Subscriptions") | Create recurring payments with Rapyd Collect. | | [Funding a Wallet](funding-a-wallet.html "Funding a Wallet") | Fund your Rapyd Wallet account. | | [Moving Funds Between Wallets](moving-funds-between-wallets.html "Moving Funds Between Wallets") | Move funds within Rapyd's ecosystem. | | [Virtual Account Numbers](virtual-accounts.html "Virtual Accounts") | Accept payments locally. | | [Product Changelog](product-changelog.html "Product Changelog") | View new features and updates to Rapyd's products. | In this section: Search results -------------- No results found * [Prev](account-activation.html#idp215775) * [Next](product-guide.html#idp215784) --- # Uploading a Mass Payment File [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Collect](collect.html) * [Payment Features](payment-features-479258.html) * Uploading a Mass Payment File * [Prev](creating-a-mass-payment-file.html#idp255184) * [Next](uploading-a-mass-payment-file.html#idp255209) ##### Uploading a Mass Payment File Upload your mass payment file to the Client Portal. This is the third and last step in [Creating Mass Payments](creating-mass-payments.html "Creating Mass Payments") . This procedure requires Owner or Administrator privileges. ### Prerequisite Completion of [Creating a Mass Payment File](creating-a-mass-payment-file.html "Creating a Mass Payment File") . [###### How to Upload a Mass Payment File](#idp255209_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Collect** > **Payment Features** > **Mass Payments**. The **Mass Payments** page appears. ![6488750528193.png](image/16763ca4850490.png) 2. Select **Create Mass Payments** The Create Mass Payments dialogue box appears. ![648875077f377.png](image/16763ca4859c7d.png) 3. Upload your edited file as follows: * Select the CSV file to upload. You can drag it to the screen or browse for it in your file system. * Choose the payment type from the **Select payment type** list. * **Payment** - Each payer is issued a numeric paycode, payable at Rapyd POS locations. * **Checkout** - Each payer is assigned a unique URL that opens a Rapyd Checkout page with detailed payment instructions. ![64887509953fb.png](image/16763ca4862e96.png) 4. Press **Start upload**. The **Finish** page updates you when the upload is complete. ![6488750b642be.png](image/16763ca486c675.png) Rapyd processes your batch request for payments, which might take a few minutes. When the batch process completes, Rapyd creates a payment report and sends an email to the person who uploaded the mass payment file. The email contains a link to the payment report. In this section: Search results -------------- No results found * [Prev](creating-a-mass-payment-file.html#idp255184) * [Next](uploading-a-mass-payment-file.html#idp255209) --- # Subscriptions [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Collect](rapyd-collect.html) * [Billing](billing.html) * Subscriptions * [Prev](billing.html#idp222279) * [Next](subscriptions.html#idp222302) ##### Subscriptions With Rapyd Collect, you can create subscriptions (also called subscription billing, recurring billing or recurring payments). Subscriptions work well for businesses that offer a monthly service. Rapyd Collect helps you integrate this functionality into your website or application. This use case describes a regular monthly billing with the amount always the same. * For periodic billing with the amount based on usage, or different rate levels depending on quantity, see [Plan](create-plan.html "Create Plan") . * For periodic billing with a fixed end date, see [Create Subscription](create-subscription.html "Create Subscription") . A customer would like to use your digital service, Acme Music, in Singapore. The cost is 3 Singapore dollars per month, indefinitely. [###### Subscriptions Overview](#idp222302_body) Part 1 - Create Product of type 'service'. Part 2 - Create Plan to define the pricing structure. Part 3 - Create Subscription **Note**: A customer profile with a payment method defined is needed to create a subscription. [###### Selecting a Payment Method and Customer Profile Workflow](#idp222309_body) Let’s look at the highlights of your workflow. ### Prerequisite A customer profile is created only one time. It contains payment methods that can be reused for all subsequent payments. It can be used for recurring payments and many other purposes. ###### Part 1 - Select a Payment Method ![643e7dbfb8223.png](image/16763ca32d856c.png) 1. Your website queries Rapyd for the payment methods available in Singapore. 2. Rapyd returns a list of payment methods. 3. Your website offers a list of choices to your customer. ###### Part 2 - Create a Customer Profile ![643e7dc13588f.png](image/16763ca32e316c.png) 1. The customer selects your product and a payment method. 2. Your website back end asks Rapyd to create a customer profile. 3. Rapyd creates the profile and assigns a unique ID. [###### Subscription Creation Workflow](#idp222339_body) ###### Step 1 - Create a Product ![643e7dc299474.png](image/16763ca32ed774.png) 1. You define the product you are providing. 2. Your website back end asks Rapyd to create a product of type 'service'. 3. Rapyd creates the product and returns a Product ID. ###### Step 2 - Create a Plan ![643e7dc3c28d2.png](image/16763ca33021af.png) 1. You determine the pricing structure you want for the recurring payment. 2. Your website back end asks Rapyd to create the plan. 3. Rapyd creates the plan and returns a Plan ID. ###### Step 3 - Create the Subscription ![643e7dc5213bb.png](image/16763ca330bc7d.png) 1. You decide the parameters you need for the recurring payment. 2. Your website back end asks Rapyd to create a subscription for the customer. 3. Rapyd creates the subscription and returns a Subscription ID. At the end of each billing period, Rapyd collects the amount due and adds it to your wallet. [###### Subscription Message Sequences](#idp222378_body) The message sequence diagrams below describe how information is exchanged between Rapyd, the merchant, and the card network. Create Subscription ![subscription-with-automatic-capture-of-card-payment.svg](image/16763ca3316d8b.svg) [###### How Subscriptions Work](#idp222385_body) ### Customer ID with Saved Payment Method If you already have a customer with a payment method, you can skip to Create Product. [###### Find Payment Methods](#idp222390_body) First, you need to determine which Singaporean payment methods support payments in Singapore dollars (SGD). Run [List Payment Methods by Country](list-payment-methods-by-country.html "List Payment Methods by Country") with the following parameters: Description of Query Parameters | | | | --- | --- | | Query Parameter | Description | | country | **SG**, the country code for Singapore. | | currency | **SGD**, the currency code for Singapore dollars. | ###### List Payment Methods by Country Request * * Request * // Request URL: GET https://sandboxapi.rapyd.net/v1/payment\_methods/country?country=SG¤cy=SGD // Message body absent * * .NET Core * using System; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string country = "SG"; string currency = "SGD"; string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payment\_methods/country?country={country}¤cy={currency}"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const result = await makeRequest( 'GET', '/v1/payment\_methods/country?country=SG¤cy=SGD ); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $object = make\_request('get', '/v1/payment\_methods/country?country=SG¤cy=SGD'); echo $object; } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request country = 'SG' currency = 'SGD' results = make\_request(method='get', path=f'/v1/payment\_methods/country?country={country}¤cy={currency}') pprint(results) ###### List Payment Methods by Country Response Rapyd returns the following response (redacted for brevity). The fields are described in [Payment Method Type Object](payment-method-type.html "Payment Method Type") . * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "865cd976-1b2f-4321-b88c-3caaa5a4499e" }, "data": \[\ {\ "type": "sg\_credit\_cup\_card",\ "name": "UnionPay",\ "category": "card",\ "image": "https://iconslib.rapyd.net/checkout/sg\_credit\_cup\_card.png",\ "country": "sg",\ "payment\_flow\_type": "",\ "currencies": \[\ "SGD"\ \],\ "status": 1,\ "is\_cancelable": true,\ "payment\_options": \[\ {\ "name": "capture",\ "type": "boolean",\ "regex": "",\ "description": "Determines when the payment is processed for capture.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "complete\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "the complete\_payment\_url field must be filled in.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "error\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "the error\_payment\_url field must be filled in.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "statement\_descriptor",\ "type": "string",\ "regex": "/^\[a-zA-Z0-9\]{0,22}/",\ "description": "A text description suitable for a customer's payment statement. Limited to 22 characters.",\ "is\_required": false,\ "is\_updatable": false\ }\ \],\ "is\_expirable": false,\ "is\_online": false,\ "is\_refundable": true,\ "minimum\_expiration\_seconds": 0,\ "maximum\_expiration\_seconds": 604800,\ "virtual\_payment\_method\_type": "card",\ "is\_virtual": false,\ "multiple\_overage\_allowed": false,\ "amount\_range\_per\_currency": \[\ {\ "currency": "SGD",\ "maximum\_amount": null,\ "minimum\_amount": null\ }\ \],\ "is\_tokenizable": false,\ "supported\_digital\_wallet\_providers": \[\],\ "submid\_required": false,\ "is\_restricted": false\ },\ // . . .\ \] } Using your website or a Rapyd hosted page, you display one or more of these payment methods to the customer. The customer chooses one and provides the required information. [###### Get Required Fields](#idp222468_body) Each payment method has its own requirements. To determine what information the customer needs to provide, run [Get Payment Method Required Fields](get-payment-method-required-fields.html "Get Payment Method Required Fields") . In this use case, our customer chose **UnionPay**. Description of Path Parameters | | | | --- | --- | | Path Parameter | Description | | type | **sg\_credit\_cup\_card**, the ID for the **UnionPay** payment method type. | ###### Get Payment Method Required Fields Request * * Request * // Request URL: GET https://sandboxapi.rapyd.net/v1/payment\_methods/sg\_credit\_cup\_card/required\_fields // Message body absent * * .NET Core * using System; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string type = "sg\_fast\_bank"; string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payment\_methods/{type}/required\_fields"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const result = await makeRequest('GET', '/v1/payment\_methods/sg\_fast\_bank/required\_fields'); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $object = make\_request('get', '/v1/payment\_methods/sg\_fast\_bank/required\_fields'); echo $object; } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request payment\_method = 'sg\_fast\_bank' results = make\_request(method='get', path=f'/v1/payment\_methods/{payment\_method}/required\_fields') pprint(results) ###### Get Payment Method Required Fields Response Rapyd returns the following response. The fields in the response are described in [Payment Method Type Object](payment-method-type.html "Payment Method Type") . * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "01ccc669-ca5d-4ff4-bc1e-88be05fae2cb" }, "data": { "type": "sg\_credit\_cup\_card", "fields": \[\ {\ "name": "name",\ "type": "string",\ "regex": "",\ "is\_required": true,\ "instructions": "card holder name"\ },\ {\ "name": "number",\ "type": "string",\ "regex": "",\ "is\_required": true,\ "instructions": "card number"\ },\ {\ "name": "expiration\_month",\ "type": "string",\ "regex": "",\ "is\_required": true,\ "instructions": "expiration month as string, 01-12"\ },\ {\ "name": "expiration\_year",\ "type": "string",\ "regex": "",\ "is\_required": true,\ "instructions": "expiration year in to digits as string, 18-99"\ },\ {\ "name": "cvv",\ "type": "string",\ "regex": "",\ "is\_required": true,\ "instructions": "card cvv"\ }\ \], "payment\_method\_options": \[\ {\ "name": "3d\_required",\ "type": "boolean",\ "regex": "",\ "description": "Allows the client to determine whether the customer is required to complete 3DS authentication for the transaction",\ "is\_required": false,\ "is\_updatable": false\ }\ \], "payment\_options": \[\ {\ "name": "capture",\ "type": "boolean",\ "regex": "",\ "description": "Determines when the payment is processed for capture.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "complete\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "the complete\_payment\_url field must be filled in.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "error\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "the error\_payment\_url field must be filled in.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "statement\_descriptor",\ "type": "string",\ "regex": "/^\[a-zA-Z0-9\]{0,22}/",\ "description": "A text description suitable for a customer's payment statement. Limited to 22 characters.",\ "is\_required": false,\ "is\_updatable": false\ }\ \], "minimum\_expiration\_seconds": 0, "maximum\_expiration\_seconds": 604800 } } The response shows that this payment method does not require any specific fields or payment method options. ### Note Some payment methods require fields in the 'payment\_options' array to appear in other contexts. For details, see the description of the fields in the response to 'Get Payment Method Required Fields'. [###### Create Customer Profile](#idp222544_body) Create the customer's profile with all parameters required for a customer and for the payment method selected. For our example, we will use [Create Customer](create-customer.html "Create Customer") with the following parameters: Description of Body Parameters | | | | --- | --- | | Body Parameter | Description | | name | Your customer's name. | | email | Your customer's email address. | | payment\_method | An object containing the following:

* `type` - string - The code for the payment method, in this case, **sg\_credit\_cup\_card**.

* `fields` - object - The fields required for the payment method, as shown in the `fields` array in the response to [Get Payment Method Required Fields](get-payment-method-required-fields.html "Get Payment Method Required Fields")
. | ### Note If you are creating a card payment method and you do not have PCI clearance, you must create the customer without the payment method, then add the payment method using [Create Card Token](create-card-token.html "Create Card Token") , then set that payment method as the default with [Update Customer](update-customer.html "Update Customer") . ###### Create Customer Request * * Request * // Request URL: post https://sandboxapi.rapyd.net/v1/customers // Message body { "name": "John Doe", "email": "johndoe@rapyd.net", "payment\_method": { "type": "sg\_credit\_cup\_card", "fields": { "number": "4111111111111111", "expiration\_month": "10", "expiration\_year": "23", "cvv": "123", "name": "John Doe" }, "complete\_payment\_url": "https://complete.rapyd.net/", "error\_payment\_url": "https://error.rapyd.net/" } } * * .NET Core * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var requestObj = new { name = "John Doe", email = "johndoe@rapyd.net", payment\_method = new Object\[\] { new { type = "sg\_credit\_cup\_card", fields = new Object\[\] { new { number = "4111111111111111", expiration\_month = "10", expiration\_year = "23", cvv = "123", name = "John Doe" } } complete\_payment\_url = "https://complete.rapyd.net/", error\_payment\_url = "https://error.rapyd.net/" } } }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/customers", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { name: 'John Doe', email: 'johndoe@rapyd.net', payment\_method: \[\ {\ type: 'sg\_credit\_cup\_card',\ fields: \[\ number: '4111111111111111',\ expiration\_month: '10',\ expiration\_year: '23',\ cvv: '123',\ name: 'John Doe'\ \],\ complete\_payment\_url: 'https://complete.rapyd.net/',\ error\_payment\_url: 'https://error.rapyd.net/'\ }\ \] }; const result = await makeRequest('POST', '/v1/customers', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ "name" => "John Doe",\ "email" => "johndoe@rapyd.net",\ "payment\_method" => array(array(\ "type" => "sg\_credit\_cup\_card",\ "fields" => array(array(\ "number" => "4111111111111111",\ "expiration\_month" => "10",\ "expiration\_year" => "23",\ "cvv" => "123",\ "name" => "John Doe"\ )),\ "complete\_payment\_url" => "https://complete.rapyd.net/",\ "error\_payment\_url" => "https://error.rapyd.net/"\ ))\ \]; try { $object = make\_request('post', '/v1/customers', $body); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request customer = { "name": "John Doe", "email": "johndoe@rapyd.net", "payment\_method": { "type": "sg\_credit\_cup\_card", "fields": { "number": "4111111111111111", "expiration\_month": "10", "expiration\_year": "23", "cvv": "123", "name": "John Doe" }, "complete\_payment\_url": "https://complete.rapyd.net/", "error\_payment\_url": "https://error.rapyd.net/" } } result = make\_request(method='post', path='/v1/customers', body=customer) pprint(result) ###### Create Customer Response Rapyd returns the following response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "acc384b0-1430-4d7d-a2b0-327be9da975a" }, "data": { "id": "cus\_81da79bf18af36e64b49c1c374faa524", "delinquent": false, "discount": null, "name": "John Doe", "default\_payment\_method": "card\_c01d1b10f309884f381cfc499cdfb1ec", "description": "", "email": "johndoe@rapyd.net", "phone\_number": "", "invoice\_prefix": "", "addresses": \[\], "payment\_methods": { "data": \[\ {\ "id": "card\_c01d1b10f309884f381cfc499cdfb1ec",\ "type": "sg\_credit\_cup\_card",\ "category": "card",\ "metadata": null,\ "image": "https://iconslib.rapyd.net/checkout/sg\_credit\_cup\_card.png",\ "webhook\_url": "",\ "supporting\_documentation": "",\ "next\_action": "3d\_verification",\ "name": "John Doe",\ "last4": "1111",\ "acs\_check": "unchecked",\ "cvv\_check": "unchecked",\ "bin\_details": {\ "type": null,\ "brand": null,\ "level": null,\ "country": null,\ "bin\_number": "411111"\ },\ "expiration\_year": "23",\ "expiration\_month": "10",\ "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467",\ "redirect\_url": "https://sandboxcheckout.rapyd.net/3ds-payment?token=payment\_178af04b589334ee6406eee7a430e028"\ }\ \], "has\_more": false, "total\_count": 1, "url": "/v1/customers/cus\_81da79bf18af36e64b49c1c374faa524/payment\_methods" }, "subscriptions": null, "created\_at": 1668353979, "metadata": {}, "business\_vat\_id": "", "ewallet": "", "network\_reference\_id": 962926, "complete\_payment\_url": "https://complete.rapyd.net/", "error\_payment\_url": "https://error.rapyd.net/" } } [###### Create Product](#idp222637_body) To define a product of type **services**, run [Create Product](create-product.html "Create Product") with the following parameters: Description of Body Parameters | | | | --- | --- | | Body Parameter | Description | | name | Enter the name of your product, **Acme Music Stream**. | | type | Enter **services** . | ###### Create Product Request * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/products // Message body: { "name": "Acme Music Stream", "type": "services" } * * .NET Core * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var requestObj = new { name = "Acme Music Stream", type = "services", }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/products", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { name: 'Acme Music Stream', type: 'services' }; const result = await makeRequest('POST', '/v1/products', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ "name" => "Acme Music Stream",\ "type" => "services"\ \]; try { $object = make\_request('post', '/v1/products', $body); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request product = { "name": "Acme Music Stream", "type": "services" } results = make\_request(method='post', path=f'/v1/products', body=product) pprint(results) ###### Create Product Response Rapyd returns the following response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "1f5c173f-fc9a-4d11-9fd3-de91419b5ab7" }, "data": { "id": "product\_3f22f9ef6eb18894e95127e5bb8e0c9d", "active": true, "attributes": \[\], "created\_at": 1668432691, "description": "", "images": \[\], "metadata": {}, "name": "Acme Music Stream", "package\_dimensions": { "height": 0, "length": 0, "weight": 0, "width": 0 }, "shippable": false, "skus": \[\], "statement\_descriptor": "", "type": "services", "unit\_label": "", "updated\_at": 1668432691 } } The `data` section of this response shows that: * The product `id` for your product is **product\_3f22f9ef6eb18894e95127e5bb8e0c9d**. When you run this example in your own sandbox, you will get a different ID, which you will need for the next step. * The product `name` is **Acme Music Stream**. * The product `type` is **services**. [###### Create Plan](#idp222729_body) The plan defines the pricing structure for your product. You can define different plans for the same product, for example, basic or premium, with different rates. For this use case, run [Create Plan](create-plan.html "Create Plan") with the following parameters: Description of Body Parameters | | | | --- | --- | | Body Parameter | Description | | amount | Enter **3.00** as the monthly amount for the plan. | | currency | Enter **SGD** as the currency code for Singapore dollar. | | interval | Enter **month** as the billing cycle interval. | | product | Enter the ID that you received when you created the product in your sandbox. In this instance, we are using **product\_3f22f9ef6eb18894e95127e5bb8e0c9d**, which is for the product we created in our sandbox. | | nickname | Enter **Basic Streaming** as the name of the plan. | | usage\_type | Enter **licensed** as the usage type. The customer is billed a flat rate, even when the service is not used.

For other options, see [Create Plan](create-plan.html "Create Plan")
. | ###### Create Plan Request * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/plans // Message body { "currency": "SGD", "interval": "month", "product": "product\_3f22f9ef6eb18894e95127e5bb8e0c9d", "amount": 3, "nickname": "Basic Streaming", "usage\_type": "licensed" } * * .NET Core * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var requestObj = new { currency = "SGD", interval = "month", product = "product\_3f22f9ef6eb18894e95127e5bb8e0c9d", amount = 3, nickname = "Basic Streaming", usage\_type = "licensed", }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/plans", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { currency: 'SGD', interval: 'month', product: 'product\_3f22f9ef6eb18894e95127e5bb8e0c9d', amount: 3, nickname: 'Basic Streaming', usage\_type: 'licensed' }; const result = await makeRequest('POST', '/v1/plans', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ "currency" => "SGDSGD",\ "interval" => "month",\ "product" => "product\_3f22f9ef6eb18894e95127e5bb8e0c9d",\ "amount" => 3,\ "nickname" => "Basic Streaming",\ "usage\_type" => "licensed"\ \]; try { $object = make\_request('post', '/v1/plans', $body); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request # Create Plan request plan = { "currency": "SGD", "interval": "month", "product": "product\_3f22f9ef6eb18894e95127e5bb8e0c9d", "amount": 3, "nickname": "Basic Streaming", "usage\_type": "licensed" } result = make\_request(method='post', path='/v1/plans', body=plan) pprint(result) ###### Create Plan Response Rapyd returns the following response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "935d04de-51b9-4869-a68c-76692ce5387a" }, "data": { "id": "plan\_5487c8a5be1dd847de7da4ce8feebfab", "aggregate\_usage": "sum", "amount": 3, "billing\_scheme": "per\_unit", "created\_at": 1668432810, "currency": "SGD", "interval": "month", "interval\_count": 1, "metadata": {}, "product": { "id": "product\_3f22f9ef6eb18894e95127e5bb8e0c9d", "active": true, "attributes": \[\], "created\_at": 1668432691, "description": "", "images": \[\], "metadata": {}, "name": "Acme Music Stream", "package\_dimensions": { "height": 0, "length": 0, "weight": 0, "width": 0 }, "shippable": false, "skus": \[\], "statement\_descriptor": "", "type": "services", "unit\_label": "", "updated\_at": 1668432691 }, "nickname": "Basic Streaming", "tiers": \[\], "tiers\_mode": "", "transform\_usage": { "divide\_by": 1, "round": "up" }, "trial\_period\_days": 0, "usage\_type": "licensed" } } The data section of this response shows that Rapyd created an ID for the **Basic Streaming** plan and linked it to the product. The ID of the plan is **plan\_5487c8a5be1dd847de7da4ce8feebfab**. When you run this example in your own sandbox, you get a different ID, which you will need for the next step. [###### Create Subscription](#idp222834_body) The final step in the process is creating the subscription itself. Here, you link all the required elements together: (customer, product, the plan) and set the subscription to continue indefinitely. To make the subscription terminate at a specific time, see [Subscription](subscription-364807.html "Subscription") . This use case uses the API, but you can create the subscription with a hosted page. See [Create Subscription by Create Subscription by Hosted Page](create-subscription-by-hosted-page.html "Create Subscription by Hosted Page") . Run [Create Subscription](create-subscription.html "Create Subscription") with the following parameters: Description of Body Parameters | | | | --- | --- | | Body Parameter | Description | | customer | Enter the ID that you received when you created the customer in your sandbox. In this instance, we are using **cus\_81da79bf18af36e64b49c1c374faa524**, which is the ID of the customer we created in our sandbox. Because we are not explicitly mentioning a payment method, the API will use the customer's default payment method.

To use a payment method other than the default, configure `payment_method`. See [Subscription](subscription-364807.html "Subscription")
. | | billing | Enter **pay\_automatically** . | | subscription\_items | Enter an array that contains only one object. The object contains the following fields:

* `plan` - Enter the plan 'id' that you received when you created the plan in your sandbox. In this instance, we are using **plan\_5487c8a5be1dd847de7da4ce8feebfab**, which is the plan ID we created for our sandbox.

* `quantity` - Enter **1**, since your customer is subscribing to one instance of this plan (for example). | ###### Create Subscription Request Request Rapyd to create a subscription for your customer. * * Request * // Request URL: POST /v1/payments/subscriptions/ // Message body: { "customer": "cus\_81da79bf18af36e64b49c1c374faa524", "billing": "pay\_automatically", "subscription\_items": \[\ {\ "plan": "plan\_5487c8a5be1dd847de7da4ce8feebfab",\ "quantity": 1\ }\ \] } * * .NET Core * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var requestObj = new { customer = "cus\_81da79bf18af36e64b49c1c374faa524", billing = "pay\_automatically", subscription\_items = new Object\[\] { new { plan = "plan\_5487c8a5be1dd847de7da4ce8feebfab", quantity = 1 } } }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/payments/subscriptions", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { customer: 'cus\_81da79bf18af36e64b49c1c374faa524', billing: 'pay\_automatically', subscription\_items: \[\ {\ plan: 'plan\_5487c8a5be1dd847de7da4ce8feebfab',\ quantity: 1\ }\ \] }; const result = await makeRequest('POST', '/v1/payments/subscriptions', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ "customer" => "cus\_81da79bf18af36e64b49c1c374faa524",\ "billing" => "pay\_automatically",\ "subscription\_items" => array(array(\ "plan" => "plan\_5487c8a5be1dd847de7da4ce8feebfab",\ "quantity" => 1\ ))\ \]; try { $object = make\_request('post', '/v1/payments/subscriptions', $body); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request subscription = { "customer": "cus\_81da79bf18af36e64b49c1c374faa524", "billing": "pay\_automatically", "subscription\_items": \[\ {\ "plan": "plan\_5487c8a5be1dd847de7da4ce8feebfab",\ "quantity": 1\ }\ \] } result = make\_request(method='post', path='/v1/payments/subscriptions', body=subscription) pprint(result) ###### Create Subscription Response Rapyd returns the following response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "423028d6-5bc5-429d-9d59-049a3967ccfa" }, "data": { "id": "sub\_c1388d28c46c4cf853655a5a822e5e46", "billing": "pay\_automatically", "billing\_cycle\_anchor": 1668432892, "created\_at": 1668432892, "customer\_token": "cus\_81da79bf18af36e64b49c1c374faa524", "days\_until\_due": 30, "metadata": {}, "tax\_percent": 0, "cancel\_at\_period\_end": false, "canceled\_at": null, "current\_period\_end": 1671024892, "current\_period\_start": 1668432892, "discount": null, "ended\_at": null, "subscription\_items": { "data": \[\ {\ "id": "subi\_b4b55ddb6c854be912cceeb4d95ed1a4",\ "created": 1668432892,\ "metadata": null,\ "quantity": 1,\ "plan": {\ "id": "plan\_5487c8a5be1dd847de7da4ce8feebfab",\ "aggregate\_usage": "sum",\ "amount": 3,\ "billing\_scheme": "per\_unit",\ "created\_at": 1668432810,\ "currency": "SGD",\ "interval": "month",\ "interval\_count": 1,\ "metadata": {},\ "product": "product\_3f22f9ef6eb18894e95127e5bb8e0c9d",\ "nickname": "Basic Streaming",\ "tiers": \[\],\ "tiers\_mode": "",\ "transform\_usage": {\ "divide\_by": 1,\ "round": "up"\ },\ "trial\_period\_days": 0,\ "usage\_type": "licensed"\ }\ }\ \], "has\_more": false, "total\_count": 0, "url": "/v1/subscription\_items?subscription=sub\_c1388d28c46c4cf853655a5a822e5e46" }, "status": "active", "trial\_end": null, "trial\_start": null, "payment\_method": "card\_c01d1b10f309884f381cfc499cdfb1ec", "payment\_fields": null, "payout\_fields": null, "type": "payment" } } The data section of this response shows: * The `id` of the subscription is **sub\_c1388d28c46c4cf853655a5a822e5e46**. When you run this example in your own sandbox, you will get a different ID. * The customer's payment method will be charged 3.00 SGD every month until the subscription is canceled. In this section: Search results -------------- No results found * [Prev](billing.html#idp222279) * [Next](subscriptions.html#idp222302) --- # Creating Mass Payments [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Collect](collect.html) * [Payment Features](payment-features-479258.html) * Creating Mass Payments * [Prev](listing-group-payments.html#idp255039) * [Next](creating-mass-payments.html#idp255094) ##### Creating Mass Payments This procedure describes how to create a batch of mass payments. Creating a batch of mass payments requires Owner or Administrator privileges. [###### How to Create Mass Payments](#idp255094_body) A mass payment is a group of payments uploaded to the Client Portal using a CSV file formatted with the payment data. You can create and complete several payments simultaneously with Collect using the Mass Payments feature. The Client Portal provides the sample files. You must download a sample file as a template, and enter data for each payment. All payments in a single file must be for the same combination. Upload one or more files to the Client Portal for a single mass payment. For multiple files, the Client Portal creates a batch file. The procedure involves the following steps: 1. Downloading a Sample Mass Payment File 2. Creating a Mass Payment File 3. Uploading a Mass Payment File ###### Downloading a Sample Mass Payment File You can download a Sample Mass Payment file to serve as a template for your own mass payment file. The file will be in CSV format. See [Downloading a Sample Mass Payment File](downloading-a-sample-mass-payment-file.html "Downloading a Sample Mass Payment File") for more information. ###### Creating a Mass Payment File You can create a mass payment file in CSV format based on the sample file you downloaded. See [Creating a Mass Payment File](creating-a-mass-payment-file.html "Creating a Mass Payment File") for more information. ###### Uploading a Mass Payment File You can upload your mass payment file to Client Portal for processing. Once the file is uploaded, a mass payment report will be created. The user that uploaded the file will receive a notification from Rapyd by email. See [Uploading a Mass Payment File](uploading-a-mass-payment-file.html "Uploading a Mass Payment File") for more details. In this section: Search results -------------- No results found * [Prev](listing-group-payments.html#idp255039) * [Next](creating-mass-payments.html#idp255094) --- # Rapyd Collect [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * Rapyd Collect * [Prev](supported-currencies.html#idp216532) * [Next](rapyd-collect.html#idp216606) ### Rapyd Collect Rapyd Collect is a global payment acceptance platform that helps businesses reach billions of consumers wanting to transact with their locally-preferred payment methods, such as eWallets, local and international cards, bank transfers, and cash. Accept Payments from Customers Around the World en/integrate-payment-methods.html Integrate Payment Methods Explore each payment method to learn how you can build with Rapyd in a single integration. en/rapyd-checkout-overview.html Checkout Provides you with the quickest way to accept 900+ payment methods from your website or mobile application. en/billing.html Billing With Rapyd Collect billing you can create subscriptions and generate single or mass payments. en/payment-features.html Integrate Payment Features Make it easy to set up different payment flows to create better local experiences. In this section: Search results -------------- No results found * [Prev](supported-currencies.html#idp216532) * [Next](rapyd-collect.html#idp216606) --- # Rapyd Platforms [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * Rapyd Platforms * [Prev](product-guide.html#idp215819) * [Next](rapyd-platforms.html#idp215873) ### Rapyd Platforms Create great local experiences anywhere by integrating local commerce ad fintech experience into your applications. Platforms en/rapyd-collect.html Rapyd Collect Connect your apps, sites, and software to all the ways the world pays. en/rapyd-disburse.html Rapyd Disburse Make local and cross border payouts using any method. en/rapyd-wallet.html Rapyd Wallet Let customers, employees, and contractors store and spend funds. en/rapyd-issuing.html Rapyd Issuing Issue physical and virtual cards to consumers and businesses. Payment and Payout Categories | | | | | | --- | --- | --- | --- | | **Card** | **Bank** | **Wallet** | **Cash** | | Local | Direct Transfer | Local | POS | | International | Virtual Accounts | Mobile Money | ATM | | Credit | Real Time Payments | Digital Banks | Vouchers | | Debit | Online Redirect | BillPay | | The [Rapyd Global Payments Network](https://www.rapyd.net/network/overview/) provides unparalleled global reach: * 900+ Local payment and payout methods * Collect and disburse in 100+ countries * 2 million+ global ATM and over-the-counter cash access points * Card issuing in 10+ markets * Single settlement in over 65+ currencies In this section: Search results -------------- No results found * [Prev](product-guide.html#idp215819) * [Next](rapyd-platforms.html#idp215873) --- # Payment Method Types [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * Payment Method Types * [Prev](refund-to-multiple-accounts.html#idp226771) * [Next](payment-method-types.html#idp227076) ### Payment Method Types Convert More Buyers By Offering The Most Popular Local Payment Methods Around the World. #### Offer More Payment Methods With Rapyd Collect Offering more payment methods to your payment flows can help your business reach more customers around the world. Each country has a unique set of payment preferences. That's why it is so important to offer different payment methods during your checkout and payment processes. #### Payment Methods A table summarizing the most prominent Payment Methods is listed below. Payment In this section: Search results -------------- No results found * [Prev](refund-to-multiple-accounts.html#idp226771) * [Next](payment-method-types.html#idp227076) --- # Client Portal Guide [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * Client Portal Guide * [Prev](product-changelog.html#idp249136) * [Next](client-portal-guide.html#idp249142) Client Portal Guide ------------------- Gain access to your Rapyd account, including functionality for the sandbox and production environment. Account Management en/home-page.html Home Page Get started with your Rapyd sandbox account. en/my-account.html My Account Manage your profile, company's business details, and bank accounts. en/users-and-roles.html Users and Roles Manage the users that can log in to the Client Portal. en/developers.html Developers Gain access to your Rapyd account, including functionality for the sandbox and production environment. Movement of Funds en/collect.html Collect View payment and refund transactions. Download related reports. en/disburse.html Disburse View payout transactions. Download related reports. en/wallets.html Wallets View and download a list of all wallets that your company manages. en/issuing.html Issuing Manage cards that are issued to wallets that your company manages. Payments Management | | | | --- | --- | | [Mass Payments](creating-mass-payments.html "Creating Mass Payments") | Generate a batch of payments for your customers. | | [Mass Payouts](mass-payouts.html "Mass Payouts") | Generate a batch of payouts in a single operation. | | [Rapyd Protect](rapyd-protect-overview.html "Rapyd Protect Overview") | Fraud management for cards and local payment methods. | | [Plugins](plugins-and-add-ons.html "Plugins and Add-Ons") | Connect local payments to your shopping cart. | | [Reports](reports-367106.html "Reports") | View and download financial reports | In this section: Search results -------------- No results found * [Prev](product-changelog.html#idp249136) * [Next](client-portal-guide.html#idp249142) --- # Payment With FX [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Collect](rapyd-collect.html) * [Payment Features](payment-features.html) * Payment With FX * [Prev](two-step-payment.html#idp223321) * [Next](payment-with-fx.html#idp223621) ##### Payment With FX Enable customers to pay in their local currency. The Payment with FX feature allows your customers to make transactions in the currency of their choice — even if that currency is different from what is supported by their payment method. The FX process is transparent to the customer. You can accept a payment with [FX](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_fx "Foreign exchange") from thousands of payment methods (card, bank transfer, [eWallet](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_ewallet "eWallet") , with different currencies). Common use cases may include: * You are selling merchandise on your online store, and accept [various payment methods](integrate-payment-methods.html "Integrate Payment Methods") from international customers who use a different local currency. * You are an independent contractor who accepts payments from international clients. Your business based in Europe sells merchandise on your online store. A customer from the United States wants to purchase a product from you that costs 370 EUR (Euros). But the customer uses a payment method that only supports USD (U.S. Dollars). Rapyd makes the transition seamless for both the merchant and the customer through the Payment with FX feature. ### PCI Certification Only clients with [PCI-DSS](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_dss "Payment Card Industry Data Security Standard") certification can handle personal identifying information for cards. This method is available to merchants who have signed a special agreement with Rapyd. [###### Payment With FX Workflow](#idp223621_body) You can accept a payment with FX from thousands of payment methods (card, bank transfer, eWallet, with different currencies). How it Works describes how to find the specific payment methods you'll accept and their required fields. ###### Step 1: Customer Purchase ![fx-pmt.jpg](image/16763ca338b9ea.jpg) 1. A customer adds an item on your website that costs 370 EUR (Euros) to the shopping cart. The customer wants to pay in USD (U.S. Dollars). The customer presses the checkout button and arrives on the payment page. The customer selects the payment method of their choice (card, bank transfer, eWallet, with different currencies). 2. You ask Rapyd for the required fields of the payment method and present them to the customer. 3. The customer fills in the required details and confirms the payment by pressing **Pay**. ###### Step 2: Processing Payment ### Note Check whether the payment method type currency is different from the website currency. ![process-fx-pmt.jpg](image/16763ca3395dd8.jpg) 1. Your website back end asks Rapyd to process the payment with FX in the receiver's currency (EUR). 2. Rapyd processes the payment and sends a response to the website back end. 3. Your website displays a page that tells your customer that the purchase succeeded. [###### How Payment With FX Works](#idp223652_body) Find out how to choose the payment methods you'll accept and find their required fields. The customer must fill out these fields for the payment method. [###### Processing the Payment With FX](#idp223655_body) On your payment page, you let the customer choose a payment method. In order to process the payment with FX you need to: 1. Decide which payment methods you will accept. 2. For the accepted payment methods, use [List Payment Methods by Country](list-payment-methods-by-country.html "List Payment Methods by Country") with the following parameters: Description of Path Parameters | | | | --- | --- | | Path Parameter | Description | | country | Enter **US** as the country abbreviation. | | currency | Enter **USD** as the currency code. | ###### List Payment Methods by Country Request You ask for the list of all available US payment methods that support USD. * * Request * // Request URL: GET https://sandboxapi.rapyd.net/v1/payment\_methods/country?country=US¤cy=USD // Message body absent * * .NET Core * using System; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string country = "US"; string currency = "USD"; string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payment\_methods/country?country={country}¤cy={currency}"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const result = await makeRequest('GET', '/v1/payment\_methods/country?country=US¤cy=USD'); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $object = make\_request('get', '/v1/payment\_methods/country?country=US¤cy=USD'); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request country = 'US' currency = 'USD' results = make\_request(method='get', path=f'/v1/payment\_methods/country?country={country}¤cy={currency}') pprint(results) ###### List Payment Methods by Country Response * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "2ae2817f-a9ff-464c-a5e9-e6dfb04d4ea3" }, "data": \[\ \ // ...\ \ {\ "type": "us\_debit\_mastercard\_card",\ "name": "Mastercard",\ "category": "card",\ "image": "https://iconslib.rapyd.net/checkout/us\_mastercard\_card.png",\ "country": "US",\ "payment\_flow\_type": "card",\ "currencies": \[\ "USD"\ \],\ "status": 1,\ "is\_cancelable": false,\ "payment\_options": \[\ {\ "name": "customer",\ "type": "customer",\ "regex": "",\ "description": "make sure a customer was created with first\_name, last\_name and email",\ "is\_required": true,\ "is\_updatable": false\ }\ \],\ "is\_expirable": false,\ "is\_online": false,\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null\ },\ \ // ... \ \] } The `data` section of this response shows that Mastercard is an acceptable payment method. [###### Finding the Required Fields for the Payment Method](#idp223738_body) You need to find which fields the customer must fill in for the payment method. You will use the [Get Payment Method Required Fields](get-payment-method-required-fields.html "Get Payment Method Required Fields") with the following parameter: Description of Path Parameters | | | | --- | --- | | Path Parameter | Description | | type | Enter **us\_debit\_mastercard\_card** as the payment method type. | ###### Get Payment Method Required Fields Request You ask for the set of required fields: * * Request * // Request URL: GET https://sandboxapi.rapyd.net/v1/payment\_methods/us\_debit\_mastercard\_card/required\_fields // Message body absent * * .NET Core * using System; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string type = "us\_mastercard\_card"; string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payment\_methods/{type}/required\_fields"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const result = await makeRequest('GET', '/v1/payment\_methods/us\_mastercard\_card/required\_fields'); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $object = make\_request('get', '/v1/payment\_methods/us\_mastercard\_card/required\_fields'); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request payment\_method = 'us\_mastercard\_card' results = make\_request(method='get', path=f'/v1/payment\_methods/{payment\_method}/required\_fields') pprint(results) ###### Get Payment Method Required Fields Response * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "25bdf361-e575-4baf-a180-6cd4602201e8" }, "data": { "type": "us\_debit\_mastercard\_card", "fields": \[\ {\ "name": "number",\ "type": "string",\ "regex": "",\ "is\_required": true,\ "instructions": "card number"\ },\ {\ "name": "expiration\_month",\ "type": "string",\ "regex": "",\ "is\_required": true,\ "instructions": "expiration month as string, 01-12"\ },\ {\ "name": "expiration\_year",\ "type": "string",\ "regex": "",\ "is\_required": true,\ "instructions": "expiration year in to digits as string, 18-99"\ },\ {\ "name": "cvv",\ "type": "string",\ "regex": "",\ "is\_required": true,\ "instructions": "card cvv"\ },\ {\ "name": "name",\ "type": "string",\ "regex": "",\ "is\_required": false,\ "instructions": "card holder name"\ },\ {\ "name": "address",\ "type": "Address",\ "regex": "",\ "is\_required": false,\ "instructions": "card billing address. see Address object for more details"\ }\ \], // ... "minimum\_expiration\_seconds": null, "maximum\_expiration\_seconds": null } } The response shows that the required fields for **us\_debit\_mastercard\_card** are: * `number` - The credit card number. * `expiration_month` - The expiration month of the credit card. * `expiration_year` - The expiration year of the credit card. * `cvv` - The card verification number. **Note**: The response shows that the `name` and `address` fields are NOT required. [###### Asking Rapyd to Process the Customer's Payment](#idp223828_body) ### Get FX Rate Call You can check the current currency exchange rate with [Get FX Rate](get-fx-rate.html "Get FX Rate") . When the customer checks out on your website, you ask Rapyd to process the customer's card payment and to convert the currency from USD to EUR. You will use [Create Payment](create-payment.html "Create Payment") with the following parameters: Description of Body Parameters | | | | --- | --- | | Body Parameter | Description | | amount | Enter **370** as the amount of EUR to be paid out. | | currency | Enter **EUR** as the currency that the seller will receive. | | expiration | Enter the expiration of the transaction, in Unix time. | | requested\_currency | Enter **USD** as the currency supported by the payment method. | | payment\_method | Enter an object with the following fields:

* `type` - **us\_debit\_mastercard**

* **card** `fields` - (object)

* `number` - **4111111111111111** as the card number

* .`expiration_month` - **10**

* `expiration_year` - **20**

* `cvv` - **123** | ###### Create Payment Request You ask Rapyd to process the customer's 370 EUR (Euros) payment and to collect the payment for you right away. * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/payments // Message body: { "amount": 370, "currency": "EUR", "expiration": 1591173527, "fixed\_side": "buy", "payment\_method": { "type": "us\_debit\_mastercard\_card", "fields": { "number": "4111111111111111", "expiration\_month": "10", "expiration\_year": "20", "cvv": "123" } }, "requested\_currency": "USD" } * * .NET Core * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var requestObj = new { amount = 370, currency = "EUR", expiration = 1591173527, fixed\_side = "buy", payment\_method = new { type = "us\_mastercard\_card", fields = new { number = "4111111111111111", expiration\_month = "10", expiration\_year = "20", cvv = "123", } }, requested\_currency = "USD" }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/payments", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { amount: 370, currency: 'EUR', requested\_currency: 'USD', fixed\_side: 'buy', payment\_method: { type: 'us\_visa\_card', fields: { number: '4111111111111111', expiration\_month: '10', expiration\_year: '20', cvv: '123' } }, expiration: 1601173527 }; const result = await makeRequest('POST', '/v1/payments', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * Python * from pprint import pprint from utilities import make\_request payment\_body = { "amount": 370, "currency": "EUR", "expiration": 1591173527, "fixed\_side": "buy", "payment\_method": { "type": "us\_mastercard\_card", "fields": { "number": "4111111111111111", "expiration\_month": "10", "expiration\_year": "20", "cvv": "123" } }, "requested\_currency": "USD" } create\_payment\_response = make\_request(method='post', path='/v1/payments', body=payment\_body) pprint(create\_payment\_response) ###### Payment With Foreign Exchange Response * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "4b257ecb-2775-4a3d-a829-978ead4d6dff" }, "data": { "id": "payment\_02e2ce0763a6473ef7788109ae5d0479", "amount": 426.13, "original\_amount": 426.13, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": "CLO", // ... "paid": true, "paid\_at": 1583308522, // ... "payment\_method\_type": "us\_debit\_mastercard\_card", "payment\_method\_type\_category": "card", "fx\_rate": "1.151688", "merchant\_requested\_currency": "EUR", "merchant\_requested\_amount": 370, "fixed\_side": "buy", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "" } } The `data` section of this response shows: * The `amount` is **426.13**, which is the equivalent amount of **USD** required for the **370 EUR** payment. * The `merchant_requested_amount` is **370.00**, which is the amount of **EUR** that is paid out. * The `fx_rate` is the **EUR** to **USD** exchange rate of 1.151688. * The `paid_at` field indicates the time of completion of the payment operation, in [Unix time](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_unix_time "Unix time") . In this section: Conversion of money from one currency to another. An electronic means of storing payment methods for use in commerce. The eWallet can be funded by a variety of different payment methods. Some ewallets receive or store funds. Also known as a [digital wallet](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_digital-wallet) . Regulations developed for the [payment card industry](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pci) for data security and protection against fraud. The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](two-step-payment.html#idp223321) * [Next](payment-with-fx.html#idp223621) --- # Payout Method Types [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * Payout Method Types * [Prev](rapyd-disburse-faqs.html#idp234469) * [Next](payout-method-types.html#idp234477) ### Payout Method Types Explore different payout methods. | `Enterprise` #### Offer More Payout Methods With Rapyd Disburse Global enterprises must offer payout convenience, options, and flexibility to increase loyalty and meet the demands of your cross-border sellers, suppliers, and workers. Global beneficiaries want to be paid with local funds they can use immediately and not have to go through several steps to convert the payout into usable funds. By providing your [beneficiary](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_beneficiary "Beneficiary") payout options you effectively: * Provide improved experience with options and convenience increasing loyalty * Create redundancy for your payouts on your platform * Provide an alternative on the arrival of funds. Disburse Payout Methods en/bank-account-payout.html Bank Account Payout Make a payout from your client wallet to your worker's bank account. en/local-bank-payout.html Local Bank Payout Make bank transfers to a UK bank account. en/card-payout.html Card Payout Make a payout to a card account. en/apac-394671.html APAC Payouts See the different payouts offered in the APAC region. In this section: A person or business that receives funds from a [disburse](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_disburse) (payout) transaction. Search results -------------- No results found * [Prev](rapyd-disburse-faqs.html#idp234469) * [Next](payout-method-types.html#idp234477) --- # Collect [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * Collect * [Prev](allowing-and-blocking-ip-addresses.html#idp252675) * [Next](collect.html#idp252699) ### Collect The **Collect** section of the Client Portal contains information about payments, refunds, customers, group payments, and escrows. Payment Transactions en/viewing-payments-dashboard.html Viewing Payments Dashboard View a list of all payment transactions en/listing-payments.html Listing Payments View a list of all payment transactions. en/request-a-payment.html Request a Payment Request a payment. en/virtual-terminal.html Virtual Terminal Create a card payment. en/downloading-a-payment-report.html Downloading a Payment Report Download a report of payment transactions. en/viewing-payment-details.html Viewing Payment Details View details of a specific payment. Refund Transactions en/creating-a-refund.html Creating a Refund Refund all or part of the transaction. en/listing-refunds.html Listing Refunds View a list of all refund transactions. en/viewing-refund-details.html Viewing Refund Details View the details of your refunds. en/downloading-a-refund-report.html Downloading a Refund Report Download a report of refund transactions. Customers en/listing-customers.html Listing Customers View a list of your customers. en/viewing-customer-details.html Viewing Customer Details View details of a specific customer. en/creating-a-customer.html Creating a Customer Create a customer with a tokenized ID. Group Payments and Escrows en/listing-group-payments.html Listing Group Payments View a list of all group payments. en/listing-escrows.html Listing Escrows View a list of all escrows created. en/request-a-payment-into-escrow.html Request a Payment Into Escrow Create a payment request into escrow. en/release-a-payment-from-escrow.html Release a Payment From Escrow Release a payment curently in escrow. In this section: Search results -------------- No results found * [Prev](allowing-and-blocking-ip-addresses.html#idp252675) * [Next](collect.html#idp252699) --- # Supported Currencies [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * Supported Currencies * [Prev](activating-your-account--kyb-.html#idp216161) * [Next](supported-currencies.html#idp216188) ### Supported Currencies A list of currencies supported across Rapyd Collect, Disburse, and Virtual Accounts. Rapyd processes payments using over 100 currencies, allowing you to collect and send payments to your customers or beneficiaries in their local currency. Supported currencies are used in a few different ways: * **Presentment currency** - the currency the customer is presented and charged in. * **Settlement currency** - the currency that is deposited into your bank account. * **Payout currency** - the currency that the beneficiary bank receives. If the presentment currency is different from your settlement currency, Rapyd will convert your funds to the settlement currency. #### Supported Currency Workflow ![supported-currencies.jpg](image/16763ca2fd1447.png) 1. You charge your customer in the presentment currency of your choice. 2. The presentment currency you collect is transferred to your Rapyd Wallet as a wallet currency. 3. Rapyd converts the funds to your preferred settlement currency, or disburses the funds to a beneficiary. #### Collect Rapyd Collect is a global payment acceptance platform that allows businesses to transact with their locally preferred payment methods. All supported currencies below are represented by their ISO currency code. Rapyd can collect payments using the following supported currencies: ##### Presentment Currencies | | | | | | --- | --- | --- | --- | | AMD | EUR | MXN | THB | | AUD | GBP | MYR | TRY | | BAM | GEL | MZN | TWD | | BGN | GHS | NGN | TZS | | BRL | GIP | NOK | UAH | | BYN | GTQ | PAB | UGX | | CAD | HUF | PEN | USD | | CHF | IDR | PHP | UYU | | CLP | ISK | PLN | VND | | CNY | JPY | PYG | XAF | | COP | KES | RON | XOF | | CRC | KRW | RSD | ZAR | | CZK | MDL | RUB | ZMW | | DKK | MKD | SEK | | | DOP | MWK | SGD | | #### Disburse Disburse is a global payout platform that incorporates a broad range of payout methods. Funds are sent or disbursed to a beneficiary, usually for payroll purposes or remittance. Transactions can be cross-border or local. The list below represents the payout currency, which is sent to the beneficiary bank. This differs from the sender currency, which are the funds the sender provides when initiating a payout. All currencies below are represented by their ISO currency code. Rapyd can send payouts using the following supported currencies: ##### Payout Currencies | | | | | | --- | --- | --- | --- | | AED | DKK | KWD | SAR | | ARS | EUR | LKR | SEK | | AUD | GBP | MXN | SGD | | BDT | GHS | MYR | THB | | BGN | HKD | NGN | TRY | | BHD | HRK | NOK | TWD | | BRL | HUF | NPR | UAH | | CAD | IDR | NZD | UGX | | CHF | ILS | OMR | USD | | CLP | INR | PEN | UYU | | CNY | ISK | PHP | VND | | COP | KPY | PKR | XOF | | CRC | KES | PLN | ZAR | | CZK | KRW | RON | | #### Settlement Currencies If the presentment currency differs from the settlement currency, the presentment currency will be converted into one of the settlement currencies using standard foreign exchange rates. Rapyd settles in a wide range of currencies. For a more detailed list of the settlement currencies that Rapyd offers, see the [Rapyd Merchant Agreement](https://www.rapyd.net/security-compliance/rapyd-services-agreement/) . ### Note A list of settlement currencies from the Rapyd Merchant Agreement. | Settlement Country | Settlement Frequency | Settlement Currencies | | --- | --- | --- | | Singapore

India

US

EU Countries

UK | Subject to the listed Minimum Settlement Amount in the Rapyd Merchant Agreement. Rapyd will settle for each completed transaction within seven (7) days after a transaction is completed. | Singapore - SGD

India - INR

US - USD

UK - GBP

Iceland - ISK

EMEA (non UK, Iceland) - EUR

All other countries - USD | #### Virtual Accounts Virtual Accounts allow you to collect payments, while being linked to a Rapyd Wallet. Learn more about [Virtual Accounts](virtual-accounts.html "Virtual Accounts") . All currencies below are represented by their ISO currency code. Rapyd can move funds in Virtual Accounts using the following supported currencies: ##### Virtual Account Supported Currencies | | | | | | --- | --- | --- | --- | | AED | GHP | MXN | SGD | | AUD | HKD | NOK | TRY | | CAD | HRK | NZD | USD | | CHF | HUF | PLN | ZAR | | CZK | IDR | RON | | | DKK | ILS | SAR | | | EUR | JPY | SEK | | In this section: Search results -------------- No results found * [Prev](activating-your-account--kyb-.html#idp216161) * [Next](supported-currencies.html#idp216188) --- # Payout With FX [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Disburse](rapyd-disburse.html) * [Rapyd Disburse Features](rapyd-disburse-features.html) * Payout With FX * [Prev](rapyd-disburse-features.html#idp232450) * [Next](payout-with-fx.html#idp232493) ##### Payout With FX Pay your employees in the right currency. | `Enterprise` Rapyd makes it easy for employers to pay their employees in a foreign currency. The employer has the option of confirming the [FX](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_fx "Foreign exchange") rate before the payout is completed. Common use cases may include: * A gig-platform pays a worker's overseas bank in their preferred currency for a completed project * Your company begins hiring workers across borders and offers to pay in their currency ### Update: You Can Do a Payout With FX with the Sender Side Fixed In the current example, we are showing an FX payout with a fixed [beneficiary](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_beneficiary "Beneficiary") amount. The Rapyd payout API also supports fixing the sender (Debit) amount. For example, the sender wants to pay 1000 USD and the beneficiary will get the equivalent amount of BGN (Bulgarian Lev), based on the current FX rate. **Note**: To complete the payout with FX without requiring the second API call, you can set `confirm_automatically` to **true**. [###### Payout With FX Workflow](#idp232493_body) Your gig-platform uses the Client Wallet, which is in USD (U.S. Dollars). One of the workers lives in Bulgaria and needs to be paid in BGN (Bulgarian Lev). ![payout-with-fx.jpg](image/16763ca396f4c2.jpg) 1. You request a salary payout from your wallet USD account to the employee's BGN bank account with [Create Payout](create-payout.html "Create Payout") . 2. Rapyd processes the request and sends you the exchange rate. 3. You confirm the exchange rate with [Confirm Payout with FX](confirm-payout-with-fx.html "Confirm Payout with FX") . 4. Rapyd processes the payout to the employees's bank account and sends you a response. 5. You receive the payout confirmation. When the bank confirms receipt of the funds, you also receive a webhook. [###### Payout With FX Message Sequences](#idp232512_body) The message sequence diagrams below describe how information is exchanged between Rapyd, the merchant, and the beneficiary. Create Payout With FX - Automatic Confirmation ![create-payout-with-automatic-confirmation-of-exchange-rate---success.svg](image/16763ca3979224.svg) Create Payout With FX - Manual Confirmation ![create-payout-with-manual-confirmation-of-exchange-rate---success.svg](image/16763ca3981c9b.svg) [###### Payout With FX Statuses](#idp232523_body) The finite state diagram below summarizes the statuses for payouts with FX. ![payout.svg](image/16763ca398a508.svg) Description of Statuses | Status | Description | | --- | --- | | Created | The payout was created. | | Pending | The payout is processing. The FX rate must be confirmed. | | Confirmation | The beneficiary has received the payout funds. | | Completed | The payout has been completed. The beneficiary has received the payout funds. | | Canceled | The payout was canceled. | | Error | The payout has not been created, or the payout has failed. | | Expired | The payout has expired. | [###### How Payout With FX Works](#idp232576_body) ### Prerequisites To run the examples of this use case, you must run the following API calls: * 'ewallet' - Run [Create Wallet](create-wallet.html "Create Wallet") for the wallet of the ride-sharing service. Use the 'id' you get in the response. For more information, see [Creating a Rapyd Wallet](creating-a-rapyd-wallet.html "Creating a Rapyd Wallet") . * `payout_method_type` - Run [List Payout Method Types](list-payout-method-types.html "List Payout Method Types") to get the available payout method types for the country you want. In this example, we use Bulgaria (**BG**). * **Required fields** - Run [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields") to get the fields that are required for the beneficiary, the sender, and the payout itself. In this example, we use **bg\_general\_bank**. **Note**: If no rate confirmation is required, you can perform the entire payout operation automatically. Set **automatic\_confirmation** to true. [###### Processing the Payout With FX](#idp232599_body) **Note**: You can check the current currency exchange rate with [Get FX Rate](get-fx-rate.html "Get FX Rate") . The payroll manager requests a payout in USD (U.S. Dollars) for sending 2000 BGN (Bulgarian Lev) to the employee's bank account. For that, you use [Create Payout](create-payout.html "Create Payout") with the following parameters: Description of Body Parameters | | | | --- | --- | | Body Parameter | Description | | beneficiary | Fill out the 'beneficiary' object with the following details:

`payment_type` - **priority**

`address` - **456 Second Street**

`city` - **Plovdiv**

`first_name` - **Test**

`last_name` - **Employee**

`iban` - **BG80BNBG96611020345678**

`bic_swift` - **BUINBGSF** | | beneficiary\_country | Enter **BG** as the country code of the beneficiary. | | beneficiary\_entity \_type | Enter **individual** as the type of entity for the beneficiary. | | confirm\_automatically | Enter **false** to indicate that manual confirmation is required. | | description | Enter **Salary** as the description. | | ewallet | Enter the wallet 'id' that you received when you created the wallet in your sandbox. For purposes of this use case lesson, we are using **ewallet\_82dd0417a86aebb564da2f96936ce2d2**, which is the ID of the wallet we created in our sandbox. | | payout\_amount | Enter **2000** as the amount of currency to buy, in units of the **buy\_currency**. | | payout\_currency | Enter **BGN** as the payout currency. A three-letter ISO 4217 code for the currency to buy. | | payout\_method\_type | Enter **bg\_general\_bank** as the method type. Use [List Payout Method Types](list-payout-method-types.html "List Payout Method Types")
and [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields")
. | | sender | Fill out the 'sender' object with the following details:

`first name` - **Test**

`last_name` - **Manager**

`address` - **123 First Street**

`city` - **Sofia**

`date_of_birth` - **22/02/1980** | | sender\_country | Enter **BG** as the country code for Bulgaria. | | sender\_currency | Enter **USD** as the sender's currency. | | sender\_entity\_type | Enter **company** as the sender entity type. | [###### Create Payout](#idp232733_body) You ask Rapyd to process the payroll manager's payout of 2,000 BGN (Bulgarian Lev) to the employees bank account. ###### Create Payout Request * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/payouts // Message body: { "beneficiary": { "payment\_type": "priority", "address": "456 Second Street", "city": "Plovdiv", "first\_name": "Test", "last\_name": "Employee", "iban": "DE3376599444263666923298", "bic\_swift": "BUINBGSF" }, "beneficiary\_country": "BG", "beneficiary\_entity\_type": "individual", "confirm\_automatically": false, "description": "Salary", "ewallet": "ewallet\_82dd0417a86aebb564da2f96936ce2d2", "payout\_amount": "2000", "payout\_currency": "BGN", "payout\_method\_type": "bg\_general\_bank", "sender": { "first\_name": "Test", "last\_name": "Manager", "address": "123 First Street", "city": "Sofia", "date\_of\_birth": "22/02/1980" }, "sender\_country": "BG", "sender\_currency": "USD", "sender\_entity\_type": "company" } * * .NET Core * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var requestObj = new { beneficiary = new { payment\_type = "priority", address = "456 Second Street", city = "Plovdiv", first\_name = "John", last\_name = "Doe", iban = "DE3376599444263666923298", bic\_swift = "BUINBGSF" }, beneficiary\_country = "BG", beneficiary\_entity\_type = "individual", confirm\_automatically = false, description = "Salary", ewallet = "ewallet\_82dd0417a86aebb564da2f96936ce2d2", payout\_amount = "2000", payout\_currency = "BGN", payout\_method\_type = "bg\_general\_bank", sender = new { first\_name = "Jane", last\_name = "Doe", address = "123 First Street", city = "Sofia", date\_of\_birth = "22/02/1980" }, sender\_country = "BG", sender\_currency = "USD", sender\_entity\_type = "company" }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/payouts", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { beneficiary: { payment\_type: 'priority', address: '456 Second Street', city: 'Plovdiv', first\_name: 'John', last\_name: 'Doe', iban: 'DE3376599444263666923298', bic\_swift: 'BUINBGSF' }, beneficiary\_country: 'BG', beneficiary\_entity\_type: 'individual', confirm\_automatically: false, description: 'Salary', ewallet: 'ewallet\_82dd0417a86aebb564da2f96936ce2d2', payout\_amount: '2000', payout\_currency: 'BGN', payout\_method\_type: 'bg\_general\_bank', sender: { first\_name: 'Jane', last\_name: 'Doe', address: '123 First Street', city: 'Sofia', date\_of\_birth: '22/02/1980' }, sender\_country: 'BG', sender\_currency: 'USD', sender\_entity\_type: 'company' }; const result = await makeRequest('POST', '/v1/payouts', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ "beneficiary" => array(\ "payment\_type" => "priority",\ "address" => "456 Second Street",\ "city" => "Plovdiv",\ "first\_name" => "John",\ "last\_name" => "Doe",\ "iban" => "DE3376599444263666923298",\ "bic\_swift" => "BUINBGSF"\ ),\ "beneficiary\_country" => "BG",\ "beneficiary\_entity\_type" => "individual",\ "confirm\_automatically" => false,\ "description" => "Salary",\ "ewallet" => "ewallet\_82dd0417a86aebb564da2f96936ce2d2",\ "payout\_amount" => "2000",\ "payout\_currency" => "BGN",\ "payout\_method\_type" => "bg\_general\_bank",\ "sender" => array(\ "first\_name" => "Jane",\ "last\_name" => "Doe",\ "address" => "123 First Street",\ "city" => "Sofia",\ "date\_of\_birth" => "22/02/1980"\ ),\ "sender\_country" => "BG",\ "sender\_currency" => "USD",\ "sender\_entity\_type" => "company"\ \]; try { $object = make\_request('post', '/v1/payouts', $body); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request beneficiary\_fields = { "payment\_type": "priority", "address": "456 Second Street", "city": "Plovdiv", "first\_name": "John", "last\_name": "Doe", "iban": "DE3376599444263666923298", "bic\_swift": "BUINBGSF" } sender\_fields = { "first\_name": "Jane", "last\_name": "Doe", "address": "123 First Street", "city": "Sofia", "date\_of\_birth": "22/02/1980" } payout\_body = { "beneficiary": beneficiary\_fields, "beneficiary\_country": "BG", "beneficiary\_entity\_type": "individual", "confirm\_automatically": False, "description": "Salary", "ewallet": "ewallet\_82dd0417a86aebb564da2f96936ce2d2", "payout\_amount": "2000", "payout\_currency": "BGN", "payout\_method\_type": "bg\_general\_bank", "sender": sender\_fields, "sender\_country": "BG", "sender\_currency": "USD", "sender\_entity\_type": "company" } result = make\_request(method='post', path='/v1/payouts', body=payout\_body) pprint(result) ###### Create Payout Response Let's take a look at the response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "77745716-89fc-4313-abbe-162a4d25f12f" }, "data": { "id": "payout\_56010c333d71789b6110fd36bc5066ca", "payout\_type": "bank", "payout\_method\_type": "bg\_general\_bank", "amount": 2000, "payout\_currency": "BGN", "sender\_amount": 1191.1, "sender\_currency": "USD", "status": "Confirmation", "sender\_country": "BG", "sender": { "last\_name": "Manager", "first\_name": "Test", "country": "BG", "entity\_type": "company", "address": "123 First Street", "name": "Test Manager", "date\_of\_birth": "22/02/1980", "city": "Sofia", "currency": "USD" }, "beneficiary\_country": "BG", "beneficiary": { "last\_name": "Employee", "first\_name": "Test", "country": "BG", "entity\_type": "individual", "address": "456 Second Street", "name": "Test Employee", "city": "Plovdiv", "currency": "BGN", "bic\_swift": "BUINBGSF", "iban": "DE3376599444263666923298", "payment\_type": "priority" }, "fx\_rate": 0.59555, "instructions": { // ... }, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_82dd0417a86aebb564da2f96936ce2d2",\ "amount": 1191.1,\ "percent": 100\ }\ \], "metadata": {}, "description": "Salary" // ... } } The `data` section of this response shows: * The `id` of the 'payout' object is **payout\_56010c333d71789b6110fd36bc5066ca**. When you run this example in your own sandbox, you will get a different ID, which you will need for a later step in this use case. * The `fx_rate` is **0.59555**. [###### Confirm Payout](#idp232796_body) When you receive the response, you have a short time to approve the exchange rate. The exact amount of time varies from payout method to payout method. ###### Confirm Payout Request To confirm the payout, use [Confirm Payout with FX](confirm-payout-with-fx.html "Confirm Payout with FX") with the following parameters: Description of Path Parameters | | | | --- | --- | | Path Parameter | Description | | Payout ID | Enter the payout 'id' that you received when you created the payout in your sandbox. For purposes of this use case lesson, we are using **payout\_56010c333d71789b6110fd36bc5066ca**, which is the ID of the payout we created in our sandbox. | * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/payouts/confirm/payout\_56010c333d71789b6110fd36bc5066ca // Message body absent. * * .NET Core * using System; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string payout = "payout\_56010c333d71789b6110fd36bc5066ca"; string result = RapydApiRequestSample.Utilities.MakeRequest("POST", $"/v1/payouts/confirm/{payout}"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = {}; const result = await makeRequest( 'POST', '/v1/payouts/confirm/payout\_56010c333d71789b6110fd36bc5066ca', body ); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $object = make\_request('post', '/v1/payouts/confirm/payout\_56010c333d71789b6110fd36bc5066ca'); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request payout = 'payout\_56010c333d71789b6110fd36bc5066ca' results = make\_request(method='post', path=f'/v1/payouts/confirm/{payout}') pprint(results) ###### Confirm Payout Response Let's take a look at the response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "bb05d0a9-295d-4cad-958c-e20dd8dbe461" }, "data": { "id": "payout\_89a8df5e8716b9785f4f1de42e453bac", "payout\_type": "bank", "payout\_method\_type": "bg\_general\_bank", "amount": 2000, "payout\_currency": "BGN", "sender\_amount": 1191.1, "sender\_currency": "USD", "status": "Created", "sender\_country": "BG", "sender": { "id": "sender\_4bc400c5c08fd6e6d4655d5ddef73e4e", "last\_name": "Manager", "first\_name": "Test", "country": "BG", "entity\_type": "company", "address": "123 First Street", "name": "Test Manager", "date\_of\_birth": "22/02/1980", "city": "Sofia", "currency": "USD" }, "beneficiary\_country": "BG", "beneficiary": { "id": "beneficiary\_97f8a3c6955967280a11223f7c3114ca", "last\_name": "Employee", "first\_name": "Test", "country": "BG", "entity\_type": "individual", "address": "456 Second Street", "name": "Test Employee", "city": "Plovdiv", "currency": "BGN", "bank\_name": "Test Employee", "bic\_swift": "BUINBGSF", "iban": "DE3376599444263666923298", "payment\_type": "priority" }, "fx\_rate": 0.59555, "instructions": { // ... } \], "ewallets": \[\ {\ "ewallet\_id": "ewallet\_82dd0417a86aebb564da2f96936ce2d2",\ "amount": 1191.1,\ "percent": 100\ }\ \], "metadata": {}, "description": "Salary", "created\_at": 1583676917, // ... } } The `data` section of this response shows: * `status` - **Created** - This indicates that the payout process has begun. * `amount` - The amount of money that will be transferred into the employee's bank account, **2000 BGN**. * `payout_currency` - The currency sent to the employee's bank account, **BGN**. * `sender_currency` - The currency of your eWallet account, **USD**. * `created at` - The time the payout was created, in Unix time. The `ewallets` object shows the following information: * `ewallet_id` - The ID of your company wallet. * `amount` - The amount of **USD** taken from your wallet, **1191.10 USD**. [###### Closing the Transaction](#idp232900_body) ### Simulating Payout Completion The [sandbox](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_sandbox "Sandbox") does not directly simulate the action of the beneficiary receiving the payout funds. You can simulate this action with the procedure described in [Complete Payout](complete-payout.html "Complete Payout") . For this, you will need the payout ID and payout amount that you generated in your sandbox. When a payout completion is simulated, Rapyd sends a webhook. Configure your system to receive webhooks with the procedure described in [Defining a Webhook Endpoint](defining-a-webhook-endpoint.html "Defining a Webhook Endpoint") After you simulate that the employee's bank finalizes receipt of his salary, Rapyd sends you [Webhook - Payout Completed](payout-completed-webhook.html "Payout Completed Webhook") . To indicate that the payout was completed, the `status` field changes to **Completed**. ### Looking for More In-Depth Technical Information? Want to see the Rapyd API methods and objects that you'll use? Visit the [API Reference](api-reference.html "API Reference") for more technical details. In this section: Conversion of money from one currency to another. A person or business that receives funds from a [disburse](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_disburse) (payout) transaction. In Rapyd, the sandbox environment provides most of the functionality of the production environment, without using real money. Interested persons can use the sandbox to explore Rapyd's product offering or to test software integrations with Rapyd's API. Search results -------------- No results found * [Prev](rapyd-disburse-features.html#idp232450) * [Next](payout-with-fx.html#idp232493) --- # Funding a Wallet [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Wallet](rapyd-wallet.html) * Funding a Wallet * [Prev](wallet-contact.html#idp244185) * [Next](funding-a-wallet.html#idp244255) #### Funding a Wallet Fund your Rapyd Wallet account. | `Enterprise` There are several ways to fund your wallet account. [##### Fund Your Wallet Account With the Client Portal](#idp244255_body) Use the Client Portal to transfer funds from your bank account. You can select different currencies and the bank that you would like to transfer the funds from. Visit this [Funding Your Account via Client Portal](funding-your-account-via-client-portal.html "Funding Your Account via Client Portal") for step-by-step instructions. [##### Fund Your Wallet Account With the Rapyd API](#idp244259_body) Accept payments from your customers using the Rapyd Collect API. This can be set up by integrating Rapyd Collect into your payment acceptance flows and then directing all funds collected into your wallet account. You can accept credit cards, banks transfers, cash and [eWallet](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_ewallet "eWallet") s. Learn more by reviewing the [Rapyd Collect Overview page.](rapyd-collect.html "Rapyd Collect") [##### Fund Your Wallet Account With Cash Deposits at a POS](#idp244264_body) Fund your wallet account with cash deposits from thousands of [POS](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pos "Point of Sale") systems. Read more about the [Webhook - Deposit Completed](deposit-completed-webhook.html "Deposit Completed Webhook") feature under the Point-of-Sale API. In this section: An electronic means of storing payment methods for use in commerce. The eWallet can be funded by a variety of different payment methods. Some ewallets receive or store funds. Also known as a [digital wallet](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_digital-wallet) . A retail location where a business or consumer can initiate a transaction in exchange for goods or services. Search results -------------- No results found * [Prev](wallet-contact.html#idp244185) * [Next](funding-a-wallet.html#idp244255) --- # Payment Features [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Collect](collect.html) * Payment Features * [Prev](viewing-customer-details.html#idp254608) * [Next](payment-features-479258.html#idp254663) #### Payment Features The **Payment Features** section of Client Portal Collect contains information about escrow, group payments, and mass payments. Payment Features Overview en/request-a-payment-into-escrow.html Request a Payment Into Escrow Request a payment into escrow using the Client Portal en/listing-group-payments.html Listing Group Payments View a list of your group payments en/creating-mass-payments.html Creating Mass Payments Create a batch of mass payments en/downloading-a-sample-mass-payment-file.html Downloading a Sample Mass Payment File Use a sample mass payment file as a template In this section: Search results -------------- No results found * [Prev](viewing-customer-details.html#idp254608) * [Next](payment-features-479258.html#idp254663) --- # Creating a Mass Payment File [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Collect](collect.html) * [Payment Features](payment-features-479258.html) * Creating a Mass Payment File * [Prev](downloading-a-sample-mass-payment-file.html#idp255126) * [Next](creating-a-mass-payment-file.html#idp255184) ##### Creating a Mass Payment File Create your own mass payment file based on the sample file that you downloaded. This is the second step in [Creating Mass Payments](creating-mass-payments.html "Creating Mass Payments") . This procedure requires Owner or Administrator privileges. ### Prerequisite Completion of [Downloading a Sample Mass Payment File](downloading-a-sample-mass-payment-file.html "Downloading a Sample Mass Payment File") . [###### How to Create a Mass Payment File](#idp255184_body) 1. Open the sample file that you downloaded. 2. Using your own tools, edit the downloaded sample to list your payments. The header row (line 1) is required in the file. Use a separate row for each payment, as shown in the following example. **Mass Payment File** amount,currency,country,payment\_method,payment\_method.type,expiration,merchant\_reference\_id,customer,description,complete\_payment\_url,error\_payment\_url 10,USD,US,,us\_psc\_cash,,607060,,ebook 2342424,https://complete.example12345.net,https://error.example123456.net 11,USD,US,,us\_psc\_cash,,32423402340,,ebook 2342342,https://complete.example12345.net,https://complete.example12345.net 12,USD,US,,us\_psc\_cash,,101-130-132,,ebook wf23423,https://complete.example12345.net,https://complete.example12345.net ### Note The Sandbox environment supports files of up to 10 rows. 3. Continue to [Uploading a Mass Payment File](uploading-a-mass-payment-file.html "Uploading a Mass Payment File") . In this section: Search results -------------- No results found * [Prev](downloading-a-sample-mass-payment-file.html#idp255126) * [Next](creating-a-mass-payment-file.html#idp255184) --- # Moving Funds Between Wallets [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Wallet](rapyd-wallet.html) * [Wallet Features](wallet-features.html) * Moving Funds Between Wallets * [Prev](balances.html#idp244399) * [Next](moving-funds-between-wallets.html#idp244475) ##### Moving Funds Between Wallets Send money within Rapyd’s ecosystem. | `Enterprise` The Rapyd platform makes it simple for your customers to transfer money from their own [Rapyd Wallet](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_rapyd_wallet "Rapyd Wallet") to the wallet of another customer. Common use cases may include: * A customer wants to transfer funds to a another customer's wallet. * A seller on a marketplace chooses to transfer funds to another seller's wallet. * A company wallet transfers funds to an employee's wallet for a faster transaction than disburse. For example, one customer on your platform wants to move funds to another customer on your platform. Customer 1 provides you with customer 2’s identifying information, the amount and currency to transfer. Your ERP system asks Rapyd to transfer the money to customer 2. When the transfer is initiated, your ERP asks customer 2 to accept the transfer. Rapyd completes the transfer, and your ERP notifies both customers that the money was transferred. ### Note Why transfer funds between Rapyd Wallets instead of Disburse? Speed, Simplicity and Costs. Creating a wallet ecosystem allows you to more seamlessly pay your workers, speeds processing time and avoids costly transaction fees from third parties. [###### Moving Funds Between Wallets Workflow](#idp244475_body) Let’s look at the highlights of your workflow. [###### Step 1: Initiating the Transfer](#idp244478_body) On your website or mobile application, the customer selects **Transfer Funds to Another Wallet** and clicks **Confirm**. ![initiate-the-transfer.jpg](image/16763ca3ada1f9.jpg) 1. The website or mobile app asks the customer for details of the transfer. 2. Customer 1 provides the details. 3. The back end asks Rapyd to initiate the transfer. 4. Rapyd processes the request and notifies you that the transfer has been initiated. 5. Your back end sends confirmation to the customer who requested the transfer. [###### Step 2: Completing the Transfer](#idp244497_body) ![complete-the-transfer.jpg](image/16763ca3ae3782.jpg) 1. You notify the recipient that money is being sent, and you ask the recipient to accept. 2. The recipient clicks **Accept** . 3. Your back end asks Rapyd to finalize the transfer. 4. Rapyd transfers the money and notifies you that the transfer is complete. 5. You notify both customers that the transfer is complete. [###### Transfer Funds Between Wallets Message Sequences](#idp244514_body) The message sequence diagrams below describe how information is exchanged between Rapyd, the merchant, and the merchant's customers. Transfer Funds Between Wallets ![transfer-funds-between-wallets-sequence---recipient-does-not-respond.svg](image/16763ca3aee4ed.svg) Transfer Funds Between Wallets - Rejected ![transfer-funds-between-wallets-sequence---customer-rejects-transaction.svg](image/16763ca3b0242a.svg) Transfer Funds Between Wallets - Canceled ![transfer-funds-between-wallets-sequence---recipient-does-not-respond.svg](image/16763ca3b0bbb9.svg) [###### How Moving Funds Between Wallets Works](#idp244529_body) ### Prerequisites To run the examples of this use case, you must create the following wallet IDs in your own [sandbox](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_sandbox "Sandbox") : * **source\_ewallet** - Run [Create Wallet](create-wallet.html "Create Wallet") for the customer's wallet. Use the **wallet ID** you get in the response. * **destination\_ewallet** - Run [Create Wallet](create-wallet.html "Create Wallet") for the customer's wallet. Use the 'id' you get in the response. For more information, see [Creating a Rapyd Wallet](creating-a-rapyd-wallet.html "Creating a Rapyd Wallet") . [###### Initiating Transfer to Another Wallet](#idp244547_body) When the customer asks to transfer funds to the customer's wallet, you ask Rapyd to initiate the transfer process. This is the first step in a two-step process. For that, you'll use [Transfer Funds Between Wallets](transfer-funds-between-wallets.html "Transfer Funds Between Wallets") with the following parameters: Description of Parameters | | | | --- | --- | | Body Parameter | Description | | amount | Enter **100** as the amount to transfer from the customer's wallet. | | currency | Enter **USD** as the currency code for US dollars. | | source\_ewallet | Enter the **ID** that you received when you created the customer's wallet in your sandbox. For purposes of this use case lesson, we are using **ewallet\_56a273c10570528c608f2c6bcdc8ea41**, which is the wallet ID we created in our sandbox. | | destination\_ewallet | Enter the 'id' that you received when you created customer 2's wallet in your sandbox. For purposes of this use case lesson, we are using **ewallet\_43b888d4c038a219c52f45e754139f74**, which is the wallet ID we created in our sandbox. | ###### Transfer Funds Between Wallets Request You ask Rapyd to transfer the money to customer 2's wallet. * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/account/transfer // Message body: { "amount": 100, "currency": "USD", "source\_ewallet": "ewallet\_56a273c10570528c608f2c6bcdc8ea41", "destination\_ewallet": "ewallet\_43b888d4c038a219c52f45e754139f74", } * * .NET Core * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var requestObj = new { amount = 100, currency = "USD", source\_ewallet = "ewallet\_56a273c10570528c608f2c6bcdc8ea41", destination\_ewallet = "ewallet\_43b888d4c038a219c52f45e754139f74", }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/account/transfer", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { source\_ewallet: 'ewallet\_56a273c10570528c608f2c6bcdc8ea41', destination\_ewallet: 'ewallet\_43b888d4c038a219c52f45e754139f74', amount: 100, currency: 'USD' }; const result = await makeRequest('POST', '/v1/account/transfer', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ 'amount' => 100,\ 'currency' => 'USD',\ 'source\_ewallet' => 'ewallet\_56a273c10570528c608f2c6bcdc8ea41',\ 'destination\_ewallet' => 'ewallet\_43b888d4c038a219c52f45e754139f74'\ \]; try { $object = make\_request('post', '/v1/account/transfer', $body); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?> ###### Transfer Funds Between Wallets Response Let's take a look at the response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "1e6a07d6-7b06-4d6b-88b6-552fd4c2ec60" }, "data": { "id": "af468df8-6f4e-11ea-833c-02e199f7f6f5", "status": "PEN", "amount": 100, "currency\_code": "USD", "transfer\_response\_at": 0, "created\_at": 1585219432, // ... } } The `data` section of this response shows: * The `id` of the transfer transaction is **af468df8-6f4e-11ea-833c-02e199f7f6f5**. When you run this example in your own sandbox, you will get a different ID, which you will need for a later step in this use case. * The `status` is **PEN** (Pending). The money has not yet been transferred. * The `amount` is **100**. * The `currency_code` is **USD**. ### Pending Transactions on a Wallet Ledger To see the status of the transactions, refer to the `status` field. The `source_ewallet_id` or the `destination_ewallet_id` identify the source and destination wallet of the transaction. [###### Completing the Transfer](#idp244656_body) When customer 2 indicates that she accepts the transfer, you ask Rapyd to complete the transaction. For that, you'll use [Set Transfer Response](set-transfer-response.html "Set Transfer Response") with the following parameters: Description of Parameters | | | | --- | --- | | Body Parameter | Description | | id | Enter the transfer transaction 'id' that you received when you created the transfer transaction in your sandbox. For purposes of this use case lesson, we are using **af468df8-6f4e-11ea-833c-02e199f7f6f5**, which is the transfer transaction ID we created in our sandbox. | | status | Enter **accept** to indicate that customer 2 accepts the transfer. | ###### Set Transfer Response Request You ask Rapyd to complete the transfer of $100.00 from the customer's wallet to customer 2's wallet. * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/account/transfer/response // Message body: { "id": "af468df8-6f4e-11ea-833c-02e199f7f6f5", "status": "accept" } * * .NET Core * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var requestObj = new { id = "af468df8-6f4e-11ea-833c-02e199f7f6f5", status = "accept", }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/account/transfer/response", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { id: 'af468df8-6f4e-11ea-833c-02e199f7f6f5', status: 'accept' }; const result = await makeRequest('POST', '/v1/account/transfer/response', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ 'id' => 'af468df8-6f4e-11ea-833c-02e199f7f6f5',\ 'status' => 'accept',\ \]; try { $object = make\_request('post', '/v1/account/transfer/response', $body); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request transfer = 'af468df8-6f4e-11ea-833c-02e199f7f6f5' body = { "id": transfer, "status": "accept" } results = make\_request(method='post', path='/v1/account/transfer/response', body=body) pprint(results) ###### Set Transfer Response Response Let's take a look at the response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "4b8e014f-38ff-48dc-812b-547bd1f65874" }, "data": { "id": "af468df8-6f4e-11ea-833c-02e199f7f6f5", "status": "CLO", "amount": 100, "currency\_code": "USD", "destination\_phone\_number": null, "transfer\_response\_at": 1585219599, "created\_at": 1585219432, // ... } } The `data` section of this response shows that the status is now **CLO** (closed). This indicates that the money has been transferred to customer 2's wallet. Your website notifies both wallet contacts that the transfer is complete. In this section: In Rapyd, an electronic wallet for receiving, storing and disbursing funds. In Rapyd, the sandbox environment provides most of the functionality of the production environment, without using real money. Interested persons can use the sandbox to explore Rapyd's product offering or to test software integrations with Rapyd's API. Search results -------------- No results found * [Prev](balances.html#idp244399) * [Next](moving-funds-between-wallets.html#idp244475) --- # Request Signatures [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Developer Resources](developer-resources.html) * [Authentication](authentication.html) * Request Signatures * [Prev](header-parameters.html) * [Next](request-signatures.html#idp409975) ##### Request Signatures Generating the `signature` header parameter for REST requests. When you send an HTTPS REST request to the Rapyd Payments platform, you must include specified header parameters, including a signature. These headers are required for both the production platform and the sandbox. See [Header Parameters](header-parameters.html "Header Parameters") . The headers are not required in the response from your remote authorization server. The signature process helps secure requests in the following ways: * Verifies that the requester is an authorized user. * Protects data from tampering in transit. * Rejects requests from unauthorized persons. When you send a request, you calculate the signature and insert the result into the `signature` header. When the platform receives the request, it performs the same signature calculation. If the resulting values do not match, the request is rejected. [###### Calculation of Signature](#idp409975_body) The signature is calculated as a hash of a concatenation of specific strings, according to the following formula: **signature =** **BASE64 ( HASH ( httpmethod + urlpath + salt + timestamp + accesskey + secretkey + bodystring ) )** where: * **BASE64** is a Base-64 encoding algorithm. * **HASH** is the HMAC-SHA256 algorithm. * **httpmethod** is the HTTP method, in **lower-case** letters. * **urlpath** is the portion of the URL after the base URI, such as **https://api.rapyd.net**. The URL path starts with **/v1**. * **salt** is a random string for each request. Recommended length: 8-16 characters. * **timestamp** is the time of the request, in [Unix time](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_unix_time "Unix time") (seconds). The Rapyd platform is synchronized to the actual current time, as defined by public [NTP](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_ntp "Network Time Protocol") servers. The timestamp must be synchronized to the actual current time, or less than 60 seconds before the actual current time. * **accesskey** is a unique string assigned by Rapyd for each user. You can get this value from the Client Portal. See [Developers](developers.html "Developers") . * **secretkey** is a unique string for each user, assigned by Rapyd. The secret key is like a password, and is transmitted only as part of the calculated signature. Do not share it with your customers or partners, and do not transmit it in plaintext. You can get this value from the Client Portal. See [Developers](developers.html "Developers") . * **bodystring** is a valid JSON string (relevant to requests that contain a body). If the body is empty, it must be empty in the request and in the signature calculation, and not empty curly braces `{}`. ### Note * Different languages handle Base-64 encoding differently. You must adequately test your code so that all messages are encoded with all the correct Base-64 options. * Python and JavaScript truncate the rightmost zeroes from decimal numbers (12.50 → 12.5), and convert decimals to integers when all digits to the right of the decimal are zero (12.00 → 12). This can sometimes cause issues with the calculation of the signature. If you use rightmost zeroes, you can avoid these problems by sending them as numeric strings instead of JSON numbers, for example, `"12.50"` or `"12.00"`. * The body of a request must not contain any whitespace other than inside a string. * The value of a path parameter is a string without any quote marks (`"`). [###### Understanding Whitespace](#idp410034_body) * * Pretty print * { "business\_vat\_id": "123456789", "email": "johndoe@rapyd.net", "ewallet": "ewallet\_ebfe4c4f4d36b076a21369fb0d055f3e", "invoice\_prefix": "JD-", "metadata": { "merchant\_defined": true }, "name": "John Doe", "phone\_number": "+14155559993" } * * Whitespace-stripped * {"business\_vat\_id":"123456789","email":"johndoe@rapyd.net","ewallet":"ewallet\_ebfe4c4f4d36b076a21369fb0d055f3e","invoice\_prefix":"JD-","metadata":{"merchant\_defined":true},"name":"JohnDoe","phone\_number":"+14155559993"} [###### Signature Code Examples](#idp410051_body) The following utilities are required for running the code samples. * * .NET Core * using System; using System.IO; using System.Net; using System.Security.Cryptography; using System.Text; namespace RapydApiRequestSample { public static class Utilities { private const string secretKey = ""; // Never transmit the secret key by itself. private const string accessKey = ""; // The access key from Client Portal. private const bool log = false; public static string MakeRequest(string method, string urlPath, string body = null) { try { string httpMethod = method; // get|put|post|delete - must be lowercase. Uri httpBaseURL = new Uri("https://sandboxapi.rapyd.net"); string httpURLPath = urlPath; // Portion after the base URL. string httpBody = body; // Stringified JSON without whitespace. string salt = GenerateRandomString(8); // Randomly generated for each request. long timestamp = DateTimeOffset.Now.ToUnixTimeSeconds(); // Current Unix time (seconds). string signature = Sign(httpMethod, httpURLPath, salt, timestamp, httpBody); Uri httpRequestURL = new Uri(httpBaseURL, urlPath); WebRequest request = HttpWebRequest.Create(httpRequestURL); request.Method = httpMethod; request.ContentType = "application/json"; request.Headers.Add("salt", salt); request.Headers.Add("timestamp", timestamp.ToString()); request.Headers.Add("signature", signature); request.Headers.Add("access\_key", accessKey); if (log) { Console.WriteLine("web request method: " + httpMethod); Console.WriteLine("web request url: " + httpRequestURL); Console.WriteLine("web request body: " + httpBody); Console.WriteLine("web request contentType: " + request.ContentType); Console.WriteLine("web request salt: " + salt); Console.WriteLine("web request timestamp: " + timestamp); Console.WriteLine("web request signature: " + signature); Console.WriteLine("web request access\_key: " + accessKey); } return HttpRequest(request, body); } catch (Exception ex) { Console.WriteLine("Error generating request options: ", ex); throw; } } private static string Sign(string method, string urlPath, string salt, long timestamp, string body) { try { string bodyString = String.Empty; if (!String.IsNullOrWhiteSpace(body)) { bodyString = body == "{}" ? "" : body; } string toSign = method.ToLower() + urlPath + salt + timestamp + accessKey + secretKey + bodyString; if (log) { Console.WriteLine("\\ntoSign: " + toSign); } UTF8Encoding encoding = new UTF8Encoding(); byte\[\] secretKeyBytes = encoding.GetBytes(secretKey); byte\[\] signatureBytes = encoding.GetBytes(toSign); string signature = String.Empty; using (HMACSHA256 hmac = new HMACSHA256(secretKeyBytes)) { byte\[\] signatureHash = hmac.ComputeHash(signatureBytes); string signatureHex = String.Concat(Array.ConvertAll(signatureHash, x => x.ToString("x2"))); signature = Convert.ToBase64String(encoding.GetBytes(signatureHex)); } if (log) { Console.WriteLine("signature: " + signature); } return signature; } catch (Exception) { Console.WriteLine("Error generating signature"); throw; } } private static string GenerateRandomString(int size) { try { using (RandomNumberGenerator rng = new RNGCryptoServiceProvider()) { byte\[\] randomBytes = new byte\[size\]; rng.GetBytes(randomBytes); return String.Concat(Array.ConvertAll(randomBytes, x => x.ToString("x2"))); } } catch (Exception) { Console.WriteLine("Error generating salt"); throw; } } private static string HttpRequest(WebRequest request, string body) { string response = String.Empty; try { if (!String.IsNullOrWhiteSpace(body)) { using (Stream requestStream = request.GetRequestStream()) { UTF8Encoding encoding = new UTF8Encoding(); byte\[\] bodyBytes = encoding.GetBytes(body); requestStream.Write(bodyBytes, 0, bodyBytes.Length); requestStream.Close(); } } using (WebResponse webResponse = request.GetResponse()) { using (Stream responseStream = webResponse.GetResponseStream()) { using (StreamReader streamReader = new StreamReader(responseStream)) { response = streamReader.ReadToEnd(); if (log) { Console.Write("web response:" + response); } } } } } catch (WebException e) { using (StreamReader streamReader = new StreamReader(e.Response.GetResponseStream())) { response = streamReader.ReadToEnd(); if (log) { Console.Write("web response:" + response); } } } catch (Exception e) { Console.WriteLine("Error occurred: " + e.Message); } return response; } } } * * NODE.js * const https = require('https'); const crypto = require('crypto'); const secretKey = ""; // Never transmit the secret key by itself. const accessKey = ""; // The access key from Client Portal. const log = false; async function makeRequest(method, urlPath, body = null) { try { httpMethod = method; // get|put|post|delete - must be lowercase. httpBaseURL = "sandboxapi.rapyd.net"; httpURLPath = urlPath; // Portion after the base URL. salt = generateRandomString(8); // Randomly generated for each request. idempotency = new Date().getTime().toString(); timestamp = Math.round(new Date().getTime() / 1000); // Current Unix time (seconds). signature = sign(httpMethod, httpURLPath, salt, timestamp, body) const options = { hostname: httpBaseURL, port: 443, path: httpURLPath, method: httpMethod, headers: { 'Content-Type': 'application/json', salt: salt, timestamp: timestamp, signature: signature, access\_key: accessKey, idempotency: idempotency } } return await httpRequest(options, body, log); } catch (error) { console.error("Error generating request options"); throw error; } } function sign(method, urlPath, salt, timestamp, body) { try { let bodyString = ""; if (body) { bodyString = JSON.stringify(body); // Stringified JSON without whitespace. bodyString = bodyString == "{}" ? "" : bodyString; } let toSign = method.toLowerCase() + urlPath + salt + timestamp + accessKey + secretKey + bodyString; log && console.log(\`toSign: ${toSign}\`); let hash = crypto.createHmac('sha256', secretKey); hash.update(toSign); const signature = Buffer.from(hash.digest("hex")).toString("base64") log && console.log(\`signature: ${signature}\`); return signature; } catch (error) { console.error("Error generating signature"); throw error; } } function generateRandomString(size) { try { return crypto.randomBytes(size).toString('hex'); } catch (error) { console.error("Error generating salt"); throw error; } } async function httpRequest(options, body) { return new Promise((resolve, reject) => { try { let bodyString = ""; if (body) { bodyString = JSON.stringify(body); bodyString = bodyString == "{}" ? "" : bodyString; } log && console.log(\`httpRequest options: ${JSON.stringify(options)}\`); const req = https.request(options, (res) => { let response = { statusCode: res.statusCode, headers: res.headers, body: '' }; res.on('data', (data) => { response.body += data; }); res.on('end', () => { response.body = response.body ? JSON.parse(response.body) : {} log && console.log(\`httpRequest response: ${JSON.stringify(response)}\`); if (response.statusCode !== 200) { return reject(response); } return resolve(response); }); }) req.on('error', (error) => { return reject(error); }) req.write(bodyString) req.end(); } catch(err) { return reject(err); } }) } exports.makeRequest = makeRequest; * * PHP * '; // Never transmit the secret key by itself. $access\_key = ''; // The access key received from Rapyd. $idempotency = generate\_string(); // Unique for each request. $http\_method = $method; // Lower case. $salt = generate\_string(); // Randomly generated for each request. $date = new DateTime(); $timestamp = $date->getTimestamp(); // Current Unix time. $body\_string = !is\_null($body) ? json\_encode($body,JSON\_UNESCAPED\_SLASHES) : ''; $sig\_string = "$http\_method$path$salt$timestamp$access\_key$secret\_key$body\_string"; $hash\_sig\_string = hash\_hmac("sha256", $sig\_string, $secret\_key); $signature = base64\_encode($hash\_sig\_string); $request\_data = NULL; if ($method === 'post') { $request\_data = array( CURLOPT\_URL => "$base\_url$path", CURLOPT\_RETURNTRANSFER => true, CURLOPT\_POST => true, CURLOPT\_POSTFIELDS => $body\_string ); } else { $request\_data = array( CURLOPT\_URL => "$base\_url$path", CURLOPT\_RETURNTRANSFER => true, ); } $curl = curl\_init(); curl\_setopt\_array($curl, $request\_data); curl\_setopt($curl, CURLOPT\_HTTPHEADER, array( "Content-Type: application/json", "access\_key: $access\_key", "salt: $salt", "timestamp: $timestamp", "signature: $signature", "idempotency: $idempotency" )); $response = curl\_exec($curl); $err = curl\_error($curl); curl\_close($curl); if ($err) { throw new Exception("cURL Error #:".$err); } else { return json\_decode($response, true); } } ?> * * Python * import json import random import string import hmac import base64 import hashlib import time import requests base\_url = 'https://sandboxapi.rapyd.net' secret\_key = '(your-secret-key)' # Never transmit the secret key by itself. access\_key = '(your-access-key)' # The access key received from Rapyd. # salt: randomly generated for each request. def generate\_salt(length=12): return ''.join(random.sample(string.ascii\_letters + string.digits, length)) # Current Unix time (seconds). def get\_unix\_time(days=0, hours=0, minutes=0, seconds=0): return int(time.time()) def update\_timestamp\_salt\_sig(http\_method, path, body): if path.startswith('http'): path = path\[path.find(f'/v1'):\] salt = generate\_salt() timestamp = get\_unix\_time() to\_sign = (http\_method, path, salt, str(timestamp), access\_key, secret\_key, body) h = hmac.new(secret\_key.encode('utf-8'), ''.join(to\_sign).encode('utf-8'), hashlib.sha256) signature = base64.urlsafe\_b64encode(str.encode(h.hexdigest())) return salt, timestamp, signature def current\_sig\_headers(salt, timestamp, signature): sig\_headers = {'access\_key': access\_key, 'salt': salt, 'timestamp': str(timestamp), 'signature': signature, 'idempotency': str(get\_unix\_time()) + salt} return sig\_headers # http\_method = get|put|post|delete - must be lowercase # path = Portion after the base URL. # body = JSON body with no whitespace except in strings. def pre\_call(http\_method, path, body=None): str\_body = json.dumps(body, separators=(',', ':'), ensure\_ascii=False) if body else '' salt, timestamp, signature = update\_timestamp\_salt\_sig(http\_method=http\_method, path=path, body=str\_body) return str\_body.encode('utf-8'), salt, timestamp, signature def create\_headers(http\_method, url, body=None): body, salt, timestamp, signature = pre\_call(http\_method=http\_method, path=url, body=body) return body, current\_sig\_headers(salt, timestamp, signature) def make\_request(method,path,body=''): body, headers = create\_headers(method, base\_url + path, body) # JSON body goes here. Always empty string for GET; if method == 'get': response = requests.get(base\_url + path,headers=headers) elif method == 'put': response = requests.put(base\_url + path, data=body, headers=headers) elif method == 'delete': response = requests.delete(base\_url + path, data=body, headers=headers) else: response = requests.post(base\_url + path, data=body, headers=headers) if response.status\_code != 200: raise TypeError(response, method,base\_url + path) return json.loads(response.content) * * cURL * // This example shows how you might transmit the headers, including the signature. You must calculate the signature before the curl call. curl -X GET https://sandboxapi.rapyd.net/v1/data/countries -H "Content-Type: application/json" -H "salt: random-number" -H "timestamp: current-unix-time" -H "access\_key: your-access-key" -H "signature: your-calculated-signature" -d "request\_body\_goes\_here" * * Ruby * require 'digest' require 'base64' require 'json' require 'uri' require 'net/http' require 'OpenSSL' o = \[('a'..'z')\].map( & : to\_a).flatten SALT = ((0...8).map { o\[rand(o.length)\] }.join # Randomly generated for each request. TIMESTAMP = Time.now.to\_i.to\_s # Current Unix time. puts SALT puts TIMESTAMP SECRET\_KEY = 'your-secret-key' # Never transmit the secret key by itself. ACCESS\_KEY = 'your-access-key' # The access key received from Rapyd. REL\_PATH = 'get/v1/data/countries' # HTTP method (must be lowercase), # plus the portion after the base URL. Hardkeyed for this example. BODY = '' # JSON body goes here. Always empty string for GET; # strip nonfunctional whitespace. def signature body to\_sign = "#{REL\_PATH}#{SALT}#{TIMESTAMP}#{ACCESS\_KEY}#{SECRET\_KEY}#{BODY}" puts to\_sign mac = OpenSSL::HMAC.hexdigest("SHA256", SECRET\_KEY, to\_sign) puts mac temp\_BS64 = Base64.urlsafe\_encode64(mac) puts temp\_BS64 temp\_BS64 end def set\_headers request, body puts signature(body) request\['content-type'\] = 'application/json' request\['signature'\] = signature(body) request\['salt'\] = SALT request\['timestamp'\] = TIMESTAMP request\['access\_key'\] = ACCESS\_KEY request end def getFromRapyd(body, url) uri = URI(url) res = Net::HTTP.start(uri.host, uri.port, use\_ssl: true) do |http| request = Net::HTTP::Get.new(uri) set\_headers request, body http.request(request) end puts res.read\_body end def getCountries body = '' getFromRapyd(body, "https://sandboxapi.rapyd.net/v1/data/countries") end getCountries * * Java * import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.ResponseHandler; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Base64; import java.util.Random; public class GetPOS { public static String hash256(String data) throws NoSuchAlgorithmException { MessageDigest md = MessageDigest.getInstance("SHA-256"); md.update(data.getBytes()); return bytesToHex(md.digest()); } public static String bytesToHex(byte\[\]bytes) { StringBuffer result = new StringBuffer(); for (byte byt: bytes) result.append(Integer.toString((byt & 0xff) + 0x100, 16).substring(1)); return result.toString(); } public static String hmacDigest(String msg, String keyString, String algo) { String digest = null; try { SecretKeySpec key = new SecretKeySpec((keyString).getBytes("ASCII"), algo); Mac mac = Mac.getInstance(algo); mac.init(key); byte\[\]bytes = mac.doFinal(msg.getBytes("UTF-8")); StringBuffer hash = new StringBuffer(); for (int i = 0; i < bytes.length; i++) { String hex = Integer.toHexString(0xFF & bytes\[i\]); if (hex.length() == 1) { hash.append('0'); } hash.append(hex); } digest = hash.toString(); } catch (UnsupportedEncodingException e) { System.out.println("hmacDigest UnsupportedEncodingException"); } catch (InvalidKeyException e) { System.out.println("hmacDigest InvalidKeyException"); } catch (NoSuchAlgorithmException e) { System.out.println("hmacDigest NoSuchAlgorithmException"); } return digest; } public static String givenUsingPlainJava\_whenGeneratingRandomStringUnbounded\_thenCorrect() { int leftLimit = 97; // letter 'a' int rightLimit = 122; // letter 'z' int targetStringLength = 10; Random random = new Random(); StringBuilder buffer = new StringBuilder(targetStringLength); for (int i = 0; i < targetStringLength; i++) { int randomLimitedInt = leftLimit + (int) (random.nextFloat() \* (rightLimit - leftLimit + 1)); buffer.append((char)randomLimitedInt); } String generatedString = buffer.toString(); return (generatedString); } public static void main(String\[\]args)throws Exception { try { System.out.println("GetPOS Start"); String httpMethod = "get"; // get|put|post|delete - must be lowercase String urlPath = "/v1/" + "data/countries"; // hardkeyed for this example String salt = givenUsingPlainJava\_whenGeneratingRandomStringUnbounded\_thenCorrect(); // Randomly generated for each request. long timestamp = System.currentTimeMillis() / 1000L; // Unix time (seconds). String accessKey = "AAAAAAAAAAA"; // The access key received from Rapyd. String secretKey = "SSSSSSSSSSS"; // Never transmit the secret key by itself. bodyString = ""; // Always empty for GET; strip nonfunctional whitespace. // Must be a String or an empty String. String toEnc = httpMethod + urlPath + salt + Long.toString(timestamp) + accessKey + secretKey + bodyString; System.out.println("String to be encrypted::" + toEnc); String StrhashCode = hmacDigest(toEnc, secretKey, "HmacSHA256"); String signature = Base64.getEncoder().encodeToString(StrhashCode.getBytes()); HttpClient httpclient = HttpClients.createDefault(); try { HttpGet httpget = new HttpGet("/v1/data/countries"); httpget.addHeader("Content-Type", "application/json"); httpget.addHeader("access\_key", accessKey); httpget.addHeader("salt", salt); httpget.addHeader("timestamp", Long.toString(timestamp)); httpget.addHeader("signature", signature); // Create a custom response handler ResponseHandler < String > responseHandler = new ResponseHandler < String > () { @ Override public String handleResponse( final HttpResponse response)throws ClientProtocolException, IOException { int status = response.getStatusLine().getStatusCode(); HttpEntity entity = response.getEntity(); return entity != null ? EntityUtils.toString(entity) : null; } }; String responseBody = httpclient.execute(httpget, responseHandler); System.out.println("----------------------------------------"); System.out.println(responseBody); } finally { } } catch (Exception e) { } } }import org.apache.http.HttpEntity; } } * * Postman * /\* Prerequisites: - installed environment variable 'rapyd\_secret\_key' - installed environment variable 'rapyd\_access\_key' \*/ var timestamp = (Math.floor(new Date().getTime() / 1000) - 10).toString(); postman.setGlobalVariable("rapyd\_request\_timestamp", timestamp); var signature\_salt = CryptoJS.lib.WordArray.random(12); postman.setGlobalVariable("rapyd\_signature\_salt", signature\_salt); var body = ''; if (JSON.stringify(request.data) !== '{}' && request.data !== '' && typeof request.data !=='object' ){ body = JSON.stringify(JSON.parse(request.data)); } var secret = pm.environment.get('rapyd\_secret\_key'); var to\_sign = request.method.toLowerCase() + request.url.replace('{{base\_uri}}','/v1') + signature\_salt + timestamp + pm.environment.get('rapyd\_access\_key') + secret + body; console.log("to\_sign " + to\_sign); var rapyd\_signature = CryptoJS.enc.Hex.stringify(CryptoJS.HmacSHA256(to\_sign, secret)); rapyd\_signature = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(rapyd\_signature)); console.log("rapyd\_signature " + rapyd\_signature); postman.setGlobalVariable("rapyd\_signature", rapyd\_signature); [###### Related Information](#idp410111_body) * [Webhook Authentication](webhook-authentication.html "Webhook Authentication") - Describes the formula for calculating a signature for webhooks. In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. An industry-standard protocol for synchronizing clocks of computers and telephones. Search results -------------- No results found * [Prev](header-parameters.html) * [Next](request-signatures.html#idp409975) --- # Rapyd Checkout Overview [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Collect](rapyd-collect.html) * Rapyd Checkout Overview * [Prev](rapyd-collect.html#idp216634) * [Next](rapyd-checkout-overview.html#idp216647) #### Rapyd Checkout Overview Available as a Hosted or Toolkit integration – Rapyd Checkout provides the quickest way to accept hundreds of payment methods from a website or mobile application. Launch the checkout demo below to run test transactions and understand workflow. [Explore Checkout](https://checkout.rapyd.net/demo) [##### Features and Benefits](#idp216647_body) * **Mobile Ready** - Responsive design for mobile devices. * **Global** - Supports 900+ payment methods, 65+ currencies in 100+ countries. * **Customization** - Easily add your logos, colors, website URLs, customer support details, default language, payment methods, and more. * **Lower Risk** - Built-in fraud protection with Rapyd Protect, 3D Secure and simplified [PCI](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pci "Payment Card Industry") compliance. * **Multi-lingual** - Supports: English, Spanish, Dutch, Hindi, Korean, Portuguese, Simplified and Traditional Chinese, Thai, Indonesian, Tagalog and more as described in [Hosted Page Language Support](localization-methods.html "Localization Methods") . * **Streamlined Customer Experience** - Save card details for future transactions, validations with user friendly error messaging, decline recovery with contact support options, filter the page based on specific payment methods. [##### Hosted Checkout Page vs Toolkit Integration](#idp216670_body) | | | | | --- | --- | --- | | | Hosted | Toolkit | | **API Integration** | | | | **Generate page from Client Portal** | | | | **Minimal Developer Efforts Required for Integration** | | | | **Additional Developer Efforts Required for Integration** | | | | **Customizable Page** (add a logo, change the main button’s color, website URLs, customer support details). | | | | **White-label Solution** (extensive customization options, using css styling). | | | | **Users stay on your webpage** | | | | **Users are redirected to a secure Rapyd hosted page** | | | [##### Option 1: Hosted Checkout Page](#idp216748_body) Get all the [Rapyd Collect](rapyd-collect.html "Rapyd Collect") capabilities in a simple, quick integration. The secure prebuilt Hosted Checkout Page is [PCI-DSS](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_dss "Payment Card Industry Data Security Standard") certified and allows you to customize your page to suit your brand guidelines. [Hosted Checkout Page Integration Steps](hosted-checkout-page-integration.html "Hosted Checkout Page Integration") [##### Option 2: Checkout Toolkit](#idp216756_body) Checkout Toolkit is a customized solution that allows you to embed Rapyd’s hosted payment solution within your website page. [Checkout Toolkit Integration Steps](checkout-toolkit-integration.html "Checkout Toolkit Integration") Enjoy all the benefits of Rapyd’s Hosted Checkout Page while providing a hassle-free, seamless checkout experience for your customers. You can also use the Toolkit to customize the various elements in your payment page to match the look and feel of your website. [Github Code Sample](https://github.com/RapydPayments/checkout-toolkit-demo) In this section: All financial institutions that issue cards or process card transactions. The Payment Card Industry Security Standards Council develops and publishes regulations for the industry. Regulations developed for the [payment card industry](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pci) for data security and protection against fraud. Search results -------------- No results found * [Prev](rapyd-collect.html#idp216634) * [Next](rapyd-checkout-overview.html#idp216647) --- # Accessing the Client Portal [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * Accessing the Client Portal * [Prev](client-portal-guide.html#idp249212) * [Next](accessing-the-client-portal.html#idp249255) ### Accessing the Client Portal To access the Client Portal, you must have a Rapyd account. Once signed in, you can choose the production or sandbox environments. Use the **Sandbox** toggle at the lower left. If you are not the account owner, some production environment features are unavailable to you, but you can access all features on the sandbox. en/signing-up-for-an-account.html New User Sign up for an account. en/accepting-an-invitation-to-the-client-portal.html New Invited User Accept an invitation to the Client Portal. en/accounts-and-credentials.html Accounts and Credentials Credentials for Sandbox and Production. In this section: Search results -------------- No results found * [Prev](client-portal-guide.html#idp249212) * [Next](accessing-the-client-portal.html#idp249255) --- # Virtual Accounts [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * Virtual Accounts * [Prev](bank-payout-norway.html#idp243467) * [Next](virtual-accounts.html#idp243583) ### Virtual Accounts Accept Payments Locally. | `Enterprise` When a virtual account is created, it is linked to a wallet account. Each Rapyd wallet can have multiple virtual accounts. This structure makes it easier to identify incoming payments and to group numerous payments into a single wallet which can simplify [reconciliation](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_reconciliation "Reconciliation") . Virtual account numbers are active as long as the wallet account is active. Create a [virtual account](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_virtual_account "Virtual account") number to efficiently collect cross border payments from your customers through different payment methods such as bank transfers. Rapyd’s virtual account numbers are multi-use in nature so customers can use the same number to send repeated payments over a long period of time. A virtual account can be used to disburse funds repeatedly over time. Common use cases include disbursing money to a beneficiary, or disbursing funds for payroll. Rapyd currently supports [vIBAN](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_viban "Virtual International Bank Account Number") s in Europe and local bank account formats in other markets that do not use the [IBAN](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_iban "International Bank Account Number") standard. When creating your virtual account number, be sure to generate it with the country code you expect your customers to send payment to, considering that a payer may have international charges depending on their location and their own bank's policies. Please refer to the table below for country codes and the currencies supported in each market. | | | | --- | --- | | Country Code | Supported Currencies | | GB | GBP | | DE | EUR \* | | DK | AED, AUD, CAD, CHF, CZK, DKK, HKD, HRK, HUF, ILS, JPY, MXN, NOK, NZD, PLN, RON, SAR, SEK, SGD, TRY, USD, ZAR | | MX | MXN | | SG | SGD, USD, AUD, CAD, CHF, EUR, GBP, HKD, JPY, NOK, NZD, SEK | | AU | AUD, USD | | NZ | NZD, USD | | ID | IDR | \*Receive EUR transfers across 36 countries within the SEPA region ### Note You do not need to be in the country specified in order to create a virtual account number utilizing that country code. For example, a customer owns a wallet as described in [Creating a Rapyd Wallet](creating-a-rapyd-wallet.html "Creating a Rapyd Wallet") . The customer wants their wallet to have a virtual account number so that they can transfer money directly into the wallet. The customer provides information requested by your website or mobile application, and he receives a bank account number for their wallet. ![van-diagram.jpg](image/16763ca3a5bb96.jpg) [#### Virtual Account Workflow](#idp243583_body) [##### Step 1 - Issuing a Virtual Account Number to a Wallet](#idp243585_body) ![issuing-a-va.jpg](image/16763ca3a65894.jpg) 1. A customer on your website or mobile app requests a virtual bank account number for the customer's wallet, and provides the required information. You request a currency conversion for the payment. 2. The back end asks Rapyd to issue a virtual bank account number to the wallet. 3. Rapyd issues the virtual bank account number and returns a confirmation to your back end. 4. You display the bank account number to the customer. [##### Step 2 - Receiving Funds into the Virtual Account Number](#idp243599_body) The same customer wants to make a new payment through the Virtual Account. ![receiving-funds.jpg](image/16763ca3a6ebb6.jpg) 1. You call [List Virtual Accounts by Rapyd Wallet](list-virtual-accounts-by-rapyd-wallet-365103.html "List Virtual Accounts by Rapyd Wallet") . 2. Rapyd returns the Virtual Account Number details. 3. You present to the Virtual Account Number including account ID to the customer. 4. The customer sends funds to the Virtual Account Number Details. The funds are converted to the requested currency. 5. Rapyd sends you a [webhook](webhooks.html "Webhooks") notification of the deposited funds. [##### Virtual Accounts With Foreign Exchange](#idp243618_body) You can request a currency conversion for your Virtual Account by specifying the requested currency using the `requested_currency` field. The **requested currency** is what the funds will be converted to when you collect payments or create payouts using your Virtual Account. All supported currencies can be converted with FX. Selecting a requested currency has no impact on the currencies the Virtual Account can receive. [#### How Virtual Accounts Work](#idp243624_body) ### Prerequisites To run the examples of this use case, you must create the following ID in your own [sandbox](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_sandbox "Sandbox") : * **ewallet** - Run [Create Wallet](create-wallet.html "Create Wallet") for the customer's wallet. Use the **ID** you get in the response. [##### Issuing a Virtual Account Number to the Wallet](#idp243636_body) You ask Rapyd to issue a Virtual Account number to the customer's wallet. For that, you'll use [Issue Virtual Account Number to Wallet](issue-virtual-account-to-wallet.html "Issue Virtual Account to Wallet") with the following parameters: Description of Body Parameters | | | | --- | --- | | Body Parameter | Description | | ewallet | Enter the wallet 'id' that you received when you created the wallet in your sandbox. For purposes of this use case lesson, we are using **ewallet\_45c238c0d8882467128318e6a4977eed**, which is the wallet ID we created in our sandbox. | | country | Enter **GB** as the country code for Great Britain, where the customer lives. | | requested\_currency | Enter **USD** as the requested currency. This parameter is optional. | | currency | Enter **GBP** as the currency code for Pounds. | | description | Enter **Issuing virtual account number to wallet** as a comment. | [###### Issue Virtual Account Number to Wallet Request](#idp243682_body) You ask Rapyd to issue the Virtual Account number to the wallet. * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/issuing/bankaccounts // Message body: { "currency": "GBP", "country": "GB", "requested\_currency": "USD", "description": "Issuing bank account number to wallet", "ewallet": "ewallet\_45c238c0d8882467128318e6a4977eed" } * * .NET Core * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var requestObj = new { country = "SK", currency = "EUR", description = "Issuing bank account number to wallet", ewallet = "ewallet\_45c238c0d8882467128318e6a4977eed" }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/issuing/bankaccounts", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { currency: 'EUR', country: 'SK', description: 'Issuing bank account number to wallet', ewallet: 'ewallet\_45c238c0d8882467128318e6a4977eed' }; const result = await makeRequest('POST', '/v1/issuing/bankaccounts', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ 'currency' => 'EUR',\ 'country' => 'SK',\ 'description' => 'Issuing bank account number to wallet',\ 'ewallet' => 'ewallet\_45c238c0d8882467128318e6a4977eed'\ \]; try { $object = make\_request('post', '/v1/issuing/bankaccounts', $body); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request body = { "currency": "EUR", "country": "SK", "description": "Issuing bank account number to wallet", "ewallet": "ewallet\_45c238c0d8882467128318e6a4977eed", } results = make\_request(method='post', path=f'/v1/issuing/bankaccounts', body=body) pprint(results) ###### Issue Virtual Account Number to Wallet Response Let's take a look at the response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "6ccb0572-93ad-4dbf-b419-76b14876c29d" }, "data": { "id": "issuing\_64c7c4c32189fa8689ec9fe050aff3d9", "merchant\_reference\_id": "issuing\_64c7c4c32189fa8689ec9fe050aff3d9", "ewallet": "ewallet\_45c238c0d8882467128318e6a4977eed", "bank\_account": { "Iban": "GB3645888045987523520112" }, // ... "status": "ACT", "description": "Issuing bank account number to wallet", "currency": "GBP", "requested\_currency": "USD", "transactions": \[\] } } The `data` section of this response shows: * The Rapyd ID of the wallet's bank account number is **issuing\_64c7c4c32189fa8689ec9fe050aff3d9**. Since the request did not specify a reference ID, this number is also used for `merchant_reference_id`. When you run this example in your own sandbox, you will get a different ID. * `ewallet` is the ID of the customer's wallet. * The `bank_account` in this case has an IBAN with the number **GB3645888045987523520112**. * The `currency` is **GBP**. * The `requested_currency` is **USD**. * The `status` is **ACT**. This means that the bank account number is active. Your website shows the customer a confirmation and the bank account number. [##### Issue Virtual Account Number for Rapyd Wallet (Singapore)](#idp243759_body) More examples are included below for additional countries, Singapore and and Denmark. * * Request (Singapore) * { "currency": "SGD", "country": "SG", "description": "Issue bank account number to wallet", "ewallet": "ewallet\_3d03be4b6ed60a217fb1faa7c01ae2ca", "merchant\_reference\_id": "bankaccountnumber12345543", "metadata": { "merchant\_defined": true } } * * Request (Denmark) * { "currency": "SGD", "country": "DK", "description": "Issue bank account number to wallet", "ewallet": "ewallet\_3d03be4b6ed60a217fb1faa7c01ae2ca", "merchant\_reference\_id": "bankaccountnumber12345543", "metadata": { "merchant\_defined": true } } * * Response (Singapore) * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "63e2bb39-8087-4d94-9d7d-89070efc701a" }, "data": { "id": "issuing\_96671e3831b29f9af01202a47c872203", "merchant\_reference\_id": "bankaccountnumber12345543", "ewallet": "ewallet\_3d03be4b6ed60a217fb1faa7c01ae2ca", "bank\_account": { "beneficiary\_name": "Rapyd Holdings Pte Ltd", "address": "12 Marina Boulevard, DBS Asia Central, Marina Bay Financial Center Tower 3", "country\_iso": "SG", "bank": "DBS Bank", "zip": "018892", "country": "Singapore", "account\_number": "8850780138613670", "bic": "DBSSSGSGXXX" }, "metadata": { "merchant\_defined": true }, "status": "ACT", "description": "Issue test bank account", "funding\_instructions": null, "currency": "SGD", "transactions": \[\] } } * * Response (Denmark) * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "7db8425e-64a2-49bd-bcc0-dab00fba9cc5" }, "data": { "id": "issuing\_cf1359c4812a4f3f01db92a76b583b79", "merchant\_reference\_id": "bankaccountnumber12345543", "ewallet": "ewallet\_3d03be4b6ed60a217fb1faa7c01ae2ca", "bank\_account": { "beneficiary\_name": "CashDash UK Limited", "address": "Northwest House, 119 Marylebone Road NW1 5PU", "country\_iso": "DK", "iban": "DK4289000092780662", "bic": "SXPYDKKK" }, "metadata": { "merchant\_defined": true }, "status": "ACT", "description": "Issue test bank account", "funding\_instructions": null, "currency": "SGD", "transactions": \[\] } } The `data` section of this response shows: * The Rapyd ID of the wallet's Virtual Account number in Singapore is **issuing\_96671e3831b29f9af01202a47c872203** . * The Rapyd ID of the wallet's Virtual Account number in Denmark is **issuing\_cf1359c4812a4f3f01db92a76b583b79** . * The `merchant_reference_id` is also **bankaccountnumber12345543** When you run this example in your own sandbox, you will get a different ID. * `ewallet` is the ID of the customer's wallet. * The bank account in Singapore is an `account_number`**8850780138613670** . * The bank account in Denmark has an [IBAN](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_iban "International Bank Account Number") with the number **DK4289000092780662**. * Both accounts have a [BIC](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_bic "Bank Identifier Code") assigned to them. DBSSSGSGXXX (Singapore) or SXPYDKKK (Denmark). * The `currency` is **SGD**. * The `status` is **ACT**. This means that the bank account number is active. [##### Update Requested Currency by Virtual Account Number](#idp243827_body) You ask Rapyd to update the requested currency by the Virtual Account number to the customer's wallet. For that, you'll use Update Requested Currency by Virtual Account Number with the following parameters: Description of Path Parameters | | | | --- | --- | | Path Parameter | Description | | issuing\_token | A virtual account issuing token starting with **issuing\_ .** | Description of Body Parameters | | | | --- | --- | | Body Parameter | Description | | requested\_currency | Allowed values:

* ISO currency code

* null

* empty string ("") | [###### Update Requested Currency by Virtual Account Number Request](#idp243871_body) You ask Rapyd to update the requested currency by the Virtual Account number to the customer's wallet. * * Request * // Request URL: POST https://sandboxapi.rapyd.net//v1/issuing/bankaccounts/issuing\_293e65543872d2a87057b48dd657dd06 // Message body: { "requested\_currency": "USD" } [###### Update Requested Currency by Virtual Account Number Response](#idp243882_body) Let’s take a look at the response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "e213cb38-8a8f-4ae7-b124-2da91e6baaeb" }, "data": { "id": "issuing\_293e65543872d2a87057b48dd657dd06", "merchant\_reference\_id": "5rtfgk897ter0df0m", "ewallet": "ewallet\_eb221f9155cf0895c8a4e8b1ad6b844d", "bank\_account": { "beneficiary\_name": "CashDash UK Limited", "address": "Northwest House, 119 Marylebone Road NW1 5PU", "country\_iso": "DE", "iban": "DE07202208000092780641", "bic": "SXPYDEHH" }, "metadata": { "merchant\_defined": true }, "status": "ACT", "description": "Issue test bank account", "funding\_instructions": null, "currency": "EUR", "requested\_currency": "USD", "transactions": \[\] } } The data section of this response shows: * The Rapyd ID of the wallet's bank account number is **issuing\_293e65543872d2a87057b48dd657dd06**. If the request did not specify a reference ID, this number would also be used for `merchant_reference_id`. When you run this example in your own sandbox, you will get a different ID. * `ewallet` is the ID of the customer's wallet. * The `bank_account` in this case has an IBAN with the number **DE07202208000092780641**. * The `currency` is **EUR**. * The `requested_currency` is **USD**. * The `status` is **ACT**. This means that the bank account number is active. In this section: The process of comparing records to make sure that the outgoing and incoming funds are balanced with the funds that are spent or received. A virtual [IBAN](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_iban) number issued to a Rapyd Wallet. A unique identifier for a bank account. A bank account can have several vIBANs. The account holder can use each vIBAN for a different purpose, which can simplify account reconciliation. A number for a bank account that is used for international transfers. In Rapyd, the sandbox environment provides most of the functionality of the production environment, without using real money. Interested persons can use the sandbox to explore Rapyd's product offering or to test software integrations with Rapyd's API. An alphanumeric identifier for financial institutions, also known informally as a [SWIFT](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_swift) code or SWIFT/BIC code. Search results -------------- No results found * [Prev](bank-payout-norway.html#idp243467) * [Next](virtual-accounts.html#idp243583) --- # Product Changelog [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * Product Changelog * [Prev](viewing-support-tickets.html#idp248064) * [Next](product-changelog.html#idp248110) ### Product Changelog View new features, updates to Rapyd's products, and important changes to the Rapyd platforms. [#### November 2024](#idp248110_body) ##### Collect * `Added` New required fields were added to the [Disputes](listing-disputes.html "Listing Disputes") table in Client Portal. * `Added` New [fields](downloading-a-fraudulent-transactions-report.html "Downloading a Fraudulent Transactions Report") about fraud were added to the Fraudulent Transactions Report. ##### Partners * `Added` A Rapyd Partner can request access to specific Client Portal features, including: Payment Links, Hosted Checkout, and Plugins. If you are interested in becoming a Partner with Rapyd, visit our [Partners](https://www.rapyd.net/company/partners/) page for more information. [#### October 2024](#idp248130_body) ##### Disburse * `Added` A Bank-level [Payout Method Type](bank-payout-united-states.html "Bank Payout United States") (POMT) with the United States as the payout country. * `Added` A new feature, where an [extended beneficiary](hosted-beneficiary-details-page.html "Hosted Beneficiary Details Page") can be created for a payout using the Hosted Beneficiary Details Page. Set the `beneficiary_extended_fields` to `true` to gather information about the extended beneficiary. [#### September 2024](#idp248145_body) ##### Hosted Pages * `Added` Danish was added as a new [supported language](checkout-toolkit-integration.html "Checkout Toolkit Integration") for the Hosted Checkout Page Toolkit. ##### Partners * `Added` A Partner Portal Guide for PayFacs partnered with Rapyd. If you are interested in becoming a Partner with Rapyd, visit our [Partners](https://www.rapyd.net/company/partners/) page for more information. [#### August 2024](#idp248161_body) ##### Collect * `Fixed` The User Interface for [creating disputes](creating-a-dispute.html "Creating a Dispute") in the Client Portal has been updated, providing a smoother experience. ##### Disburse * `Changed` The name of the `card_token` field was changed to `card_id`, shown in [Card Eligibility for Card Payouts](card-eligibility-for-card-payouts.html "Card Eligibility for Card Payouts") . ##### Partners * `Added` A new feature to review a submitted merchant application in the Partner Portal. Partners have added flexibility to review and correct information before submitting their application. [#### July 2024](#idp248185_body) ##### Collect * `Added` The `required_customer_fields` [array](hosted-checkout-page-integration.html "Hosted Checkout Page Integration") was added to the Hosted Checkout Page Integration to provide the ability to gather more customer information on the hosted page. ##### Disburse * `Added` A new feature to create an [extended beneficiary](local-bank-payout.html "Local Bank Payout") was added. Merchants can create an extended beneficiary to gather additional information about the beneficiary. * `Added` The Card Eligibility for Card Payout [feature](card-eligibility-for-card-payouts.html "Card Eligibility for Card Payouts") was added. Merchants can use the Disburse API to determine if a beneficiary’s card is eligible for a card payout. * `Added` A Bank-level [Payout Method Type](bank-payout-bulgaria.html "Bank Payout Bulgaria") (POMT) with Bulgaria as the payout country. * `Added` A Bank-level [Payout Method Type](bank-payout-united-arab-emirates.html "Bank Payout United Arab Emirates") (POMT) with the UAE as the payout country. * `Added` A Bank-level [Payout Method Type](bank-payout-poland.html "Bank Payout Poland") (POMT) with Poland as the payout country. * `Added` A Bank-level [Payout Method Type](bank-payout-czech-republic.html "Bank Payout Czech Republic") (POMT) with the Czech Republic as the payout country. * `Added` A Bank-level [Payout Method Type](bank-payout-hungary.html "Bank Payout Hungary") (POMT) with Hungary as the payout country. * `Added` A Bank-level [Payout Method Type](bank-payout-romania.html "Bank Payout Romania") (POMT) with Romania as the payout country. * `Added` A Bank-level [Payout Method Type](bank-payout-denmark.html "Bank Payout Denmark") (POMT) with Denmark as the payout country. * `Added` A Bank-level [Payout Method Type](bank-payout-sweden.html "Bank Payout Sweden") (POMT) with Sweden as the payout country. * `Added` A Bank-level [Payout Method Type](bank-payout-norway.html "Bank Payout Norway") (POMT) with Norway as the payout country. ##### Reconciliation * `Added` New [fields](merchant-reconciliation-report.html "Merchant Reconciliation Report") about settlements and settlement currencies were added to the Merchant Reconciliation Report version _1.8_. [#### June 2024](#idp248250_body) ##### Collect * `Added` The Save Card Details Toolkit was added to the documentation [here](hosted-save-card-details-page.html "Hosted Save Card Details Page") . * `Changed` The Hosted Checkout Page Toolkit was [updated](checkout-toolkit-integration.html "Checkout Toolkit Integration") to allow color configuration for text. ##### Partners * `Added` User documentation for the Partner Portal was published. The Partner Portal Guide is available online for groups that have entered as a Partner with Rapyd. ##### Client Portal * `Added` The `reason description` field was added to the Disputes [page](listing-disputes.html "Listing Disputes") in Client Portal. ##### Accounts * `Fixed` The [documentation](activating-your-account--kyb-.html "Activating Your Account (KYB)") for Account Activation (KYB) has been updated. [#### May 2024](#idp248284_body) ##### Collect * `Added` Reusable [payment links](payment-links.html "Payment Links") using the Rapyd API are now documented. ##### Virtual Accounts * `Added` Delete unused [virtual accounts](deleting-a-virtual-account.html "Deleting a Virtual Account") through the Rapyd API. ##### Payment Method Types * `Changed` The Pix payment method has been updated [here](pix.html "Pix") . ##### Issuing * `Added` Digital Wallet [provisioning](digital-wallet-provisioning.html "Digital Wallet Provisioning") with Rapyd issued cards is now available. Use the Rapyd API to add issued cards to your digital wallet. ##### Client Portal * `Changed` User Interface improved for the wallet details [page](viewing-details-of-a-wallet.html "Viewing Details of a Wallet") . * `Changed` The wallet details [panel](previewing-wallet-details.html "Previewing Wallet Details") has been updated. ##### Reconciliation * `Changed` Version 1.4 of the Merchant Settlement [Report](merchant-settlement-report.html "Merchant Settlement Report") has been released. ##### Support * `Added` The [phone lines](creating-a-customer-support-ticket.html "Creating a Customer Support Ticket") for customer support have been updated and added to the documentation. [#### April 2024](#idp248339_body) ##### Hosted Pages * `Removed` The `org_id` response parameter was removed from the hosted pages code examples, including the [Hosted Save Card Details](hosted-save-card-details-page.html "Hosted Save Card Details Page") page, the [Rapyd Checkout](save-card-details-with-rapyd-checkout.html "Save Card Details With Rapyd Checkout") page, and the [Hosted Subscription Checkout](hosted-subscription-checkout-page.html "Hosted Subscription Checkout Page") page. [#### March 2024](#idp248351_body) ##### Collect * `Added` New fields: `Network fraud indicator`, and `fraud type` that [describe](listing-payments.html "Listing Payments") fraudulent transactions. ##### Hosted Pages * `Added` New parameters: `amount_off` and `percent_off`. [Coupons](hosted-checkout-page-integration.html "Hosted Checkout Page Integration") can be applied to individual items for the Hosted Checkout Page. ##### Payment Method Types * `Fixed` The dynamic payments [table](payment-method-types.html "Payment Method Types") in the Product Guide now redirects to documented Payment Method Types. ##### Issuing * `Added` The [authorization](authorizing-a-card-transaction-remotely.html "Authorizing a Card Transaction Remotely") for card transactions using unsupported currencies will be blocked. The merchant will be notified via webhook. * `Added` Change the card token [status](changing-the-card-token-status.html "Changing the Card Token Status") of provisioned cards. Card tokens can be activated, suspended, or deactivated. * `Changed` View the [transactions](viewing-listed-transactions-for-provisioned-cards.html "Viewing Listed Transactions for Provisioned Cards") for provisioned cards. Issued cards can be provisioned with Apple Pay or Google Pay. ##### Client Portal * `Changed` User Interface changed for Client Portal account [login](https://dashboard.rapyd.net/login) . * `Security` [Forgot password](https://dashboard.rapyd.net/forgot) flow for Client Portal accounts is improved. * `Changed` Client Portal Mobile Version - User Interface changed for [dispute details](view-dispute-details.html "View Dispute Details") page. [#### February 2024](#idp248408_body) ##### Collect * `Changed` Save Card Details with Rapyd Checkout [updated](save-card-details-with-rapyd-checkout.html "Save Card Details With Rapyd Checkout") with latest User Interface information. * `Added` Save card [details](hosted-save-card-details-page.html "Hosted Save Card Details Page") with the Hosted Save Card Details page. * `Added` Use a 3DS [redirect](checkout-toolkit-integration.html "Checkout Toolkit Integration") for the Rapyd Checkout Toolkit. * `Added` New External Network Tokenization [feature](external-network-tokenization.html "External Network Tokenization") added for card payments. Use external network tokens to complete a card payment. ##### Disburse * `Added` A Bank-level [Payout Method Type](bank-payout-united-kingdom.html "Bank Payout United Kingdom") (POMT) added with the United Kingdom as the payout country. ##### Reconciliation * `Added` The transaction [fees](merchant-reconciliation-report.html "Merchant Reconciliation Report") for Virtual Accounts and Wallets have been added to the Merchant Reconciliation Report Beta version 1.8. ##### Client Portal * `Changed` User Interface [changed](submitting-a-support-ticket.html "Submitting a Support Ticket") for the Support Center in Client Portal. * `Added` View available [Payout Methods](viewing-payout-methods.html "Viewing Payout Methods") through Client Portal. * `Security` [Reset](managing-your-user-profile.html "Managing Your User Profile") a Client Portal Account password using WhatsApp. * `Changed` View Wallet [details](previewing-wallet-details.html "Previewing Wallet Details") in Client Portal. [#### January 2024](#idp248462_body) ##### Disburse * `Added` A Bank-level [Payout Method Type](rendimento.html "Rendimento") (POMT) with Brazil as the payout country. ##### Plugins * `Security` [Rotate](rotating-your-plugin-keys.html "Rotating Your Plugin Keys") your plugin keys using Client Portal. ##### Client Portal * `Changed` View the [details](payment-link-details.html "Payment Link Details") for your payment links created with Client Portal. * `Changed` Improvements have been made to [user role](changing-a-user-s-role.html "Changing a User's Role") management and [inviting](inviting-a-user.html "Inviting a User") new users to your Client Portal account. * `Added` [Manage](changing-your-mfa-preference.html "Changing Your MFA Preference") your OTP using Whatsapp when logging into the Client Portal. You can customize your MFA (Multi-Factor Authentication) settings. * `Added` Download your [proof of account](downloading-your-proof-of-account.html "Downloading Your Proof of Account") and [account statement](downloading-your-account-statement.html "Downloading Your Account Statement") for your Rapyd Wallet. [#### December 2023](#idp248499_body) ##### Collect The [demo](rapyd-checkout-overview.html "Rapyd Checkout Overview") for Rapyd Hosted Checkout has been updated. Explore the new checkout experience. The Hosted Subscription Checkout Page now supports [coupons](hosted-subscription-checkout-page.html "Hosted Subscription Checkout Page") . You can pass the coupon ID for the `coupon` parameter to include coupons in the hosted page. You can now view the [status](creating-a-virtual-account.html "Creating a Virtual Account") of your Virtual Account in Client Portal. ##### Disburse You can now [save a draft](approving-payouts.html "Approving Payouts") when creating a payout. Other users linked to your account can create payouts. The payout draft is then approved by the account Owner or Administrator before the payout is created. A Bank-level [Payout Method Type](bank-payout-ukraine.html "Bank Payout Ukraine") (POMT) with Ukraine as the payout country has been created. ##### Client Portal New reports have been updated for the Client Portal. View the documentation for the [Merchant Reconciliation Report](merchant-reconciliation-report.html "Merchant Reconciliation Report") version 1.8. You can also download a [Failed Payments Report](failed-payments-report.html "Failed Payments Report") in the Client Portal. View the new documentation for creating a [wallet](creating-a-wallet.html "Creating a Wallet") in Client Portal. You can use the Contact Reference ID to label your contacts in Client Portal and enhance your contact management. [#### November 2023](#idp248523_body) ##### Disburse The documentation about [bank payouts](local-bank-payout.html "Local Bank Payout") has been updated. Learn more about how to make local payouts using bank transfers. ##### Issuing The process for [ordering issued cards](order-cards-via-client-portal.html "Order Cards via Client Portal") through Client Portal has been redesigned. It is now easier to order physical issued cards which you can use for your business needs. You can create a dispute for a card transaction in Client Portal. This allows you to dispute payments which appear unauthorized or fraudulent. See [Creating a Dispute](creating-a-dispute.html "Creating a Dispute") for more information. ##### Subscriptions You can now [download invoices](viewing-subscription-invoice-details.html "Viewing Subscription Invoice Details") for your subscriptions in PDF format. This new feature in Client Portal allows you to view and manage the subscription invoices for your business. [#### October 2023](#idp248539_body) ##### Disburse [Global SWIFT](swift-payout.html "SWIFT Payout") has been updated to be able to send in CA (Canada) and CAD (Canadian Dollar). A bank-level [Payout Method Type](apac-394671.html "APAC") (POMT) with Japan as the payout country has been updated with a new aggregated POMT format: `jp_local_bank.` A bank-level [Payout Method Type](apac-394671.html "APAC") (POMT) with Indonesia as the payout country has been updated with a new aggregated POMT format: `id_local_bank`. It is recommended to switch to the new POMT format as soon as possible, which provides a more streamlined payout experience. ##### Client Portal The flow for creating a Sender and Beneficiary in Client Portal has been updated. See [Create a Sender](create-a-sender.html "Create a Sender") and [Create a Beneficiary](create-a-beneficiary.html "Create a Beneficiary") for more information. When a payout is blocked by a Rapyd Protect fraud rule, you will receive an error message informing you of the blocked payout. See [Create a Payout](create-a-payout.html "Create a Payout") for more information. The page for webhooks has been redesigned. You can easily select which webhooks you want to receive from Rapyd. See [Defining a Webhook Endpoint](defining-a-webhook-endpoint.html "Defining a Webhook Endpoint") for more information. You can upload your bank statement to easily verify your bank account. You would provide this information to link a bank account for settlement purposes. See [Adding a Bank Account](adding-a-bank-account.html "Adding a Bank Account") for more details. You can download the receipts for your payments in PDF format. See [Viewing Payment Details](viewing-payment-details.html "Viewing Payment Details") for more information. ##### Checkout Toolkit The Rapyd Checkout Toolkit has a new Pending Status added. This allows the payment to be kept in a pending state so the customer can have more time to complete the payment. They are redirected to a pending status page. Learn more at [Checkout Toolkit Integration](checkout-toolkit-integration.html "Checkout Toolkit Integration") . [#### September 2023](#idp248569_body) ##### Disburse You can now set an optional requested currency for a VA (Virtual Account) issued, and each incoming transaction to the VA will be converted to the set currency. The requested currency can be updated to a different currency or null (default currency). FX rates will apply as described in [Payout with FX](payout-with-fx.html "Payout With FX") . [Global SWIFT](swift-payout.html "SWIFT Payout") has been updated to be able to send in NZ (New Zealand) and NZD (New Zealand Dollar). A bank-level [Payout Method Type](bank-payout-malaysia.html "Bank Payout Malaysia") (POMT) with Malaysia as the payout country has been updated with a new aggregated POMT format, `my_local_bank`. The new POMT has the beneficiary required field `bic_swift`, which uses the SWIFT code as a bank identifier. It is recommended to switch to the new POMT format as soon as possible, which provides a more streamlined payout experience. Aggregated POMTs such as `id_local_bank` and `jp_local_bank` are planned for the upcoming releases. ##### Rapyd Verify Updated changes have been made to the Rapyd Verify process for an improved user experience. Learn more about [Rapyd Verify Hosted Page](rapyd-verify-hosted-page.html "Rapyd Verify Hosted Page") . [#### August 2023](#idp248587_body) ##### Disburse Rapyd Disburse has been updated to no longer support numerical values in the [beneficiary](create-beneficiary.html "Create Beneficiary") first and last name or company name. Payouts with beneficiary first name, last name, or company name with numerical values will fail. This also applies to any previously saved Beneficiaries. Rapyd Disburse has been updated to mask identification data of the beneficiary, including Tax ID and passport number, with asterisks (\*) in API responses, webhooks, and checkout pages. The beneficiary will be protected from malicious actors who engage in identity theft, financial fraud, and social engineering attacks. ##### Reconciliation [Merchant Reconciliation Report](merchant-reconciliation-report.html "Merchant Reconciliation Report") has been updated to include values for the Presentment amount and Presentment currency for the following transactions: Chargeback, Chargeback Win, Chargeback Lose, and Pre-disputes. ##### Issuing [Issuing transactions](list-issued-card-transactions.html "List Issued Card Transactions") have updated logic to now calculate FX markup from the transaction currency to the wallet currency. The markup will be deducted from the wallet (Fixed side: sell). Previously the FX markup was calculated from the wallet currency to the transaction currency. [#### July 2023](#idp248602_body) ##### Collect The [Payment Links](create-payment-link.html "Create Payment Link") section of the Client Portal has been updated to include a more user-friendly workflow to generate one-time or reusable links. The [Hosted Subscription Checkout Page](hosted-subscription-checkout-page.html "Hosted Subscription Checkout Page") has been updated to make the subscription payment processes more streamlined by removing optional fields and information in the user interface that is already provided in the customer token. ##### Client Portal The [Settings](settings.html "Settings") section has been updated in the Client Portal to minimize navigation links for a better user experience and a wider view of the sections under settings. ##### Reconciliation The [Merchant Reconciliation Reports](merchant-reconciliation-report.html "Merchant Reconciliation Report") have been updated to include more details about Settlements in escrow. For merchants using escrow for settlements, there will be an included escrow release transaction, and funds are added to the wallet. As clients receive settlements, the escrow release transaction will be processed, and a settlement object will be created for the client to receive the expected funds. [#### June 2023](#idp248618_body) ##### Hosted Subscriptions, Checkout and Toolkit SEPA Direct Debit payment methods are now supported on the Hosted Subscription Page, the Hosted Checkout Page, and the Checkout Toolkit. To pay via SEPA Direct Debit, customers must provide their IBAN and complete an OTP process through a redirected portal. The Hosted Subscriptions, Checkout Page, and Checkout Toolkit have been updated to include additional call-to-action selections, including Pay and Purchase. You can customize the CTA button as described in the Client Portal Guide, [Customizing Your Hosted Page](customizing-your-hosted-page.html "Customizing Your Hosted Page") . ##### Checkout Toolkit The Checkout Toolkit has been updated, and you can now omit the CTA button from the iframe by passing a hide\_submit\_button param. You can generate your own button and control it outside using the postMessage event. Learn more at [Checkout Toolkit Integration](checkout-toolkit-integration.html "Checkout Toolkit Integration") . ##### Client Portal The [Developers](developers.html "Developers") section in the Client Portal has been updated to include an improved user experience. The [Webhooks](webhooks.html "Webhooks") section has been redesigned to organize each webhook event by each Rapyd product or object, including: Collect, Disburse, Issuing Wallets, Protect, and the Customer object. [#### May 2023](#idp248634_body) ##### Hosted Checkout Page The Rapyd API has been updated to allow clients to simulate error responses for Redirect Payments and the Toolkit in Sandbox. Learn more at [Redirect Payments](testing-for-payment-api.html "Testing for Payment API") . ##### Disburse The Hosted Payout Tracker page has been updated to include an estimated date of arrival of funds for the beneficiary or recipient. Learn more about the [Payout Tracker Link](payout-tracker-link.html "Payout Tracker Link") . The create payout process has been updated to allow the sender to fix the sender details while creating a payout. When the sender is using the Swift Bank payout method and the required fields are not valid, the sender can edit and fix sender details including city, postal code, and state. ##### Client Portal Following the development of multi-merchant clients. Clients can now create another Rapyd account with their existing users. The account will be completely new and will need to be verified and KYB-approved. [#### April 2023](#idp248648_body) ##### Hosted Solutions The Hosted Solutions pages have been updated to improve the customer experience and usability. The following pages have been updated: The Hosted Checkout Page has been updated to improve error statuses to be more descriptive. Specific error codes are now exposed in error messages from the Rapyd API to the hosted UI. Previously generic messages were shown. For more information on card and hosted page errors, refer to Card network error messages, card transaction errors, and hosted page errors. The `bin_details` object will be shown in a card payment response and webhook. The Brazil Pix eWallet `br_pix_ewallet` has been updated to now include refunds. Refer to Pix to learn more about the bank payment method. Realtime Payment Methods have been added, including `gb_realtime_bank` and `de_realtime_bank` for both GB (Great Britain) and DE (Germany). For more information on payment methods, refer to List Payment Method by Country. KYB Approval is required to complete a transaction in Production. Refer to [Activating Your Account (KYB)](activating-your-account--kyb-.html "Activating Your Account (KYB)") to learn more. ##### Client Portal The Client Portal has been updated to include a [Mobile Version](mobile-version.html "Mobile Version") . Users can log on to m.dashboard.rapyd.net/login with an optimized view for any mobile device. The CP mobile version currently has selected functionality, and capabilities will continue to expand soon. The RBA (Rapyd Business Account) will now begin charging $99/month after your account has been approved and found in [Activating Your Rapyd Business Account](activating-your-rapyd-business-account.html "Activating Your Rapyd Business Account") . This charge will begin to be deducted from your RBA Balance. The client will be charged for each month on the 10th of the month. If there are no funds in your account, then a negative balance will begin to occur each month. Refer to the [RBA Monthly Flat Fee](monthly-flat-fee.html "Monthly Flat Fee") to learn more about account negative changes and reconciliation. ##### Rapyd Verify The Financial Questionnaire section of Rapyd Verify is no longer required. Previously this section was required to move forward with business verification. [#### March 2023](#idp248674_body) ##### Wallet [Virtual Account](creating-a-virtual-account.html "Creating a Virtual Account") has been updated to include List Capabilities of Virtual Accounts per Country to list the capabilities of virtual accounts you can issue to a Rapyd Wallet. Listed capabilities (e.g., supported currencies, account type, refundable, etc.) are found in the API response and described in the Virtual Account Number Object Page. ##### Collect The Rapyd API has been updated to include [Retrieve Apple Pay Session](retrieve-apple-pay-session.html "Retrieve Apple Pay Session") to retrieve the details of an Apple Pay payment session. Each payment that uses Apple Pay requires a new Apple Pay session. Refer to the [Digital Wallet Object](digital-wallet.html "Digital Wallet") for more details on the fields. [#### February 2023](#idp248685_body) ##### Wallet The Hosted IDV Page has been updated to allow a [Toolkit Integration](identity-verification.html "Identity Verification") to embed the page and IDV flow on your website. ##### Disburse The Beneficiary Account Details section now reflects the existing [Beneficiary Account Details](hosted-beneficiary-details-page.html "Hosted Beneficiary Details Page") to embed the page and user flow on your website. ##### Issuing Clients who are non-PCI-DSS compliant can now use the Hosted Card Activation Page to generate a hosted page to [activate](hosted-card-activation-page.html "Hosted Card Activation Page") an issued card. A secured hosted page is sent to card users (private or corporate cards) to activate a card that has been personalized but not yet activated by receiving a PIN code (Rapyd randomly generates a PIN code and displays it to the user). ##### Client Portal The Client Portal has been updated to reflect an improved user experience in the Payment Methods section with regional filtering, payment method logos, country tags, and activation switches. You can still view the payment methods in the table view described in [Viewing Payment Methods](viewing-payment-methods.html "Viewing Payment Methods") . ##### Settlement Preferences The Client Portal has been updated to allow you to choose your settlement frequency from daily, weekly, or monthly as described in [Modifying Bank Account Details](modifying-bank-account-details.html "Modifying Bank Account Details") . [#### January 2023](#idp248707_body) ##### Client Portal The Client Portal has been redesigned to reflect an improved customer experience, a more modern look, and faster performance. Refer to the Client Portal or Client Portal Guide for more information. ##### Collect The Card to Card Payment has been updated to add the ability to reuse destination cards and transfer funds to saved cards. Rapyd’s Card to Card Payment method moves funds from one cardholder to another. For more information, refer to Card to Card Payments or Card to Card object. You can now style the frame and content of the Save Card Details Page with CSS properties when embedding the page within your website or app (toolkit integration). Refer to Save Card Details Using Checkout Toolkit Method and Checkout Toolkit CSS Properties. ##### Wallet Rapyd Verify is now available to clients domiciled in the UK to gather business details for KYB (Know Your Business) verification. [#### December 2022](#idp248719_body) ##### Client Portal A new Create Payout workflow has been updated in the Client Portal. This new flow has an improved client experience and adjusts to show the relevant fields dependent on the payout details configuration (e.g. individual, or business entity type, etc.). The classic version can still be accessed by clicking the link in the announcement above the Create Payout section. You can now share a link with a live payout status tracker when you create a payout. The payout tracker pops up in a dialogue box when you create the payout or find it on the payout details page or side panel in the Client Portal. [#### November 2022](#idp248725_body) ##### Collect You can now generate a [Hosted Subscription Checkout Page](hosted-subscription-checkout-page.html "Hosted Subscription Checkout Page") via API or the Client Portal. Use POST https://sandboxapi.rapyd.net/v1/checkout/subscription1 to receive a redirect URL in the response, or follow Creating a Hosted Subscription Checkout Page and choose to generate a checkout page in Client Portal. The Subscriptions Object is still available solely via API for clients with PCI Level 1 and wants to build a separate interface for creating a subscription and integrating with the Rapyd core API. The [Supported Currencies Page](supported-currencies.html "Supported Currencies") now displays a full list of currencies across Rapyd Collect, Disburse, Issuing, and Wallet. ##### Disburse The [Swift Payout Method](swift-payout.html "SWIFT Payout") is now available to pay others using Rapyd Disburse. The payout method type field is standardized as xx\_swift\_bank. However, each country has different requirements for the payout required field information as described in the linked Swift Payout page. ##### Rapyd Verify [Rapyd Verify](account-verification.html "Account Verification") has been updated to link new business wallets to an approved business wallet that has already completed the KYB process. Merchants with approved business wallets no longer have to resubmit individual KYB forms for a new business wallet. Rapyd Verify now includes two additional entity types: Nonprofits and Partnerships. Previously there were only private company and sole proprietorship entity types. [#### October 2022](#idp248743_body) ##### Client Portal [Merchant Reconciliation Reports](merchant-reconciliation-report.html "Merchant Reconciliation Report") have been updated to version 1.7, including merged fields and columns with the Merchant Reconciliation beta. The [Rotate API Keys](rotating-your-api-keys.html "Rotating Your API Keys") feature is now available in Client Portal. Account owners can set a time to rotate their secret and access keys in the sandbox or production, creating a new unique set of keys. To coordinate when to replace all your keys in sandbox or production, you can choose to set the reset time between now, 1 hour, 24 hours, three days, or seven days. [#### September 2022](#idp248752_body) ##### Collect You can now accept SEPA Direct Debit payments through the \[Hosted Checkout Page and the Toolkit Integration embedded into your website.\ \ Note: An additional step for bank payment simulations has been added in Sandbox, as shown in the diagram.\ \ ##### All Hosted Pages\ \ Italian and Turkish translation support has been added to all hosted pages. To see a full list of languages, refer to [Checkout Toolkit Integration Translations](checkout-toolkit-integration.html "Checkout Toolkit Integration")\ or List Hosted Page Supported Languages.\ \ ##### Client Portal\ \ The [Client Portal](https://dashboard.rapyd.net)\ has been updated to include new assets aligned with Rapyd’s design and brand. Pages and navigation will remain the same throughout the Client Portal dashboard.\ \ [#### August 2022](#idp248767_body)\ \ ##### Client Portal\ \ Payment Links have been added to the Client Portal to generate a reusable link to accept customer payments. You can create a set or open amount where customers can edit their amount to pay. Refer to [Creating a Payment Link](creating-a-payment-link.html "Creating a Payment Link")\ to generate a payment link.\ \ The Client Portal has been updated to include a [Report Settings](reports-settings.html "Reports Settings")\ page, which allows clients to edit the reconciliation report type and format of the CSV document. Refer to Reports Settings in the Client Portal Guide for more details.\ \ The Plugins page has been redesigned in the Client Portal. Refer to the [Plugins Guides](plugins.html "Plugins")\ for more details.\ \ [#### July 2022](#idp248777_body)\ \ ##### Collect\ \ The Payment Method Type has been updated to include the conditions array of objects, which defines specific conditions when a field is required for a payment method.\ \ For example, `identification_value` can be required if the value of the payment field amount is greater than 100.\ \ ##### Client Portal\ \ The Client Portal has been updated to include a [Subscriptions](listing-subscriptions.html "Listing Subscriptions")\ section to view details, create new subscriptions, and view pricing plans and invoices. Learn more in the Client Portal Guide to view all guides on Subscriptions.\ \ Updates have been made for How to Download a [Virtual Account](viewing-virtual-accounts.html "Viewing Virtual Accounts")\ PDF Confirmation. You can now view how to download Proof of Account Ownership and Virtual International Bank Account Numbers.\ \ The [Client Portal Guide](client-portal-guide.html "Client Portal Guide")\ has been updated and includes more information on the Customer Details page. You can generate a payment request for the customer directly within the Client Portal. A Virtual Terminal can also accept a saved payment method type immediately.\ \ [#### June 2022](#idp248792_body)\ \ ##### Collect\ \ The [Hosted Checkout Page](hosted-checkout-page-integration.html "Hosted Checkout Page Integration")\ card payment experience has been improved to automatically identify the card payment method type when inputting the card number into the corresponding field. The extra step of selecting a card payment method type prior has been removed.\ \ ##### Client Portal\ \ The Client Portal has been updated to [create and save table filters](creating-and-saving-table-filters.html "Creating and Saving Table Filters")\ for any table. You can select the filter button in the upper right corner of the page to customize your table view and follow the steps to save your Filter Group to return to your settings at any time.\ \ [#### May 2022](#idp248802_body)\ \ ##### Hosted\ \ You can now set the default language of a Hosted Page to Greek. The end-user can also select Greek as a supported language in the checkout language menu.\ \ ##### Collect\ \ The Checkout Toolkit Integration now includes [Google Pay](google-pay-.html "Google Pay™")\ . Refer to the Client Portal Guide on activating.\ \ ##### Client Portal\ \ The Client Portal has been updated to include submitting [support tickets](submitting-a-support-ticket.html "Submitting a Support Ticket")\ directly in the dashboard. You can create a support ticket by clicking the question mark icon at the top right > Create Ticket. You can also view your support tickets by going to the Support Center.\ \ You can now request payment into escrow all within the Client Portal. Sign into the Client Portal, navigate to Collect, Request Payment, and check the Hold in Escrow box > Next.\ \ [#### April 2022](#idp248818_body)\ \ ##### Collect\ \ Google Pay is now available for clients in Europe. Refer to the [Client Portal Guide](client-portal-guide.html "Client Portal Guide")\ on activating Google Pay in the Client Portal.\ \ ##### Wallet\ \ Virtual Accounts has been updated to include a Get request to [List Virtual Accounts](creating-a-virtual-account.html "Creating a Virtual Account")\ by a Rapyd Wallet. Use ewallet\_id.\ \ **Note:** To use the Virtual Accounts feature, contact Rapyd Client Support.\ \ ##### Error Messages\ \ [Error messages](card-network-errors.html "Card Network Errors")\ have been updated to include new dedicated error messages for failed card network transactions. The error message provides details on the cause and corrective action.\ \ The updates to error messages help improve the overall payment experience, reduce frustration, and eventually increase the conversion rate by encouraging customers to resubmit their payments.\ \ [#### March 2022](#idp248835_body)\ \ ##### Wallet\ \ [Virtual Account](virtual-account.html "Virtual Account")\ has been updated to include List Capabilities of Virtual Accounts per Country to list the capabilities of virtual accounts you can issue to a Rapyd Wallet. Listed capabilities (e.g., supported currencies, account type, refundable, etc.) are found in the API response and described in the Virtual Account Number Object Page.\ \ ##### Collect\ \ The Rapyd API has been updated to include [Retrieve Apple Pay Session](retrieve-apple-pay-session.html "Retrieve Apple Pay Session")\ to retrieve the details of an Apple Pay payment session. Each payment that uses Apple Pay requires a new Apple Pay session. Refer to the Digital Wallet Object for more details on the fields.\ \ [#### February 2022](#idp248845_body)\ \ ##### Wallet\ \ The Hosted IDV Page has been updated to allow a [Toolkit Integration](identity-verification.html "Identity Verification")\ to embed the page and IDV flow on your website.\ \ ##### Disburse\ \ The Beneficiary Account Details section now reflects the existing [Beneficiary Account Details](hosted-beneficiary-details-page.html "Hosted Beneficiary Details Page")\ to embed the page and user flow on your website.\ \ ##### Issuing\ \ Clients who are non-PCI-DSS compliant can now use the Hosted Card Activation Page to generate a hosted page to [activate](hosted-card-activation-page.html "Hosted Card Activation Page")\ an issued card. A secured hosted page is sent to card users (private or corporate cards) to activate a card that has been personalized but not yet activated by receiving a PIN code (Rapyd randomly generates a PIN code and displays it to the user).\ \ ##### Client Portal\ \ The Client Portal has been updated to reflect an improved user experience in the Payment Methods section with regional filtering, payment method logos, country tags, and activation switches. You can still view the payment methods in the table view described in [Viewing Payment Methods](viewing-payment-methods.html "Viewing Payment Methods")\ .\ \ ##### Settlement Preferences\ \ The Client Portal has been updated to allow you to choose your settlement frequency from daily, weekly, or monthly as described in [Modifying Bank Account Details](modifying-bank-account-details.html "Modifying Bank Account Details")\ .\ \ [#### January 2022](#idp248867_body)\ \ ##### Client Portal\ \ The Client Portal has been redesigned to reflect an improved customer experience, a more modern look, and faster performance. Refer to the Client Portal or [Client Portal Guide](client-portal-guide.html "Client Portal Guide")\ for more information.\ \ ##### Collect\ \ The Card to Card Payment has been updated to add the ability to reuse destination cards and transfer funds to saved cards. Rapyd’s Card to Card Payment method moves funds from one cardholder to another. For more information, refer to Card to Card Payments or Card to Card object.\ \ You can now style the frame and content of the [Save Card Details Page](hosted-save-card-details-page.html "Hosted Save Card Details Page")\ with CSS properties when embedding the page within your website or app (toolkit integration). Refer to Save Card Details Using Checkout Toolkit Method and Checkout Toolkit CSS Properties\ \ ##### Wallet\ \ Rapyd Verify is now available to clients domiciled in the UK to gather business details for KYB (Know Your Business) verification\ \ [#### December 2021](#idp248881_body)\ \ ##### Collect\ \ Rapyd’s card-to-card payment method moves funds from one cardholder to another card. A sender uses their card as the funding source within the Rapyd wallet to send to a destination card. The funds will load directly onto the destination card and any transactions will be reflected in the sender’s wallet ledger.\ \ Note: The card issuer may require verification before adding a source card and/or sending the payment from the source card to the destination card.\ \ Apple Pay is now available for clients domiciled in Europe. Refer to the Client Portal Guide on activating Apple Pay in the Client Portal.\ \ [#### November 2021](#idp248888_body)\ \ ##### Collect\ \ You can retrieve the most updated languages offered for Hosted Pages with a GET request to https://sandboxapi.rapyd.net/v1/hosted/config/supported-languages.\ \ Production: `GET https://api.rapyd.net/v1/hosted/config/supported-languages`\ \ Postman: `GET {{base_uri}}/hosted/config/supported-languages`\ \ ##### Client Portal\ \ The Client Portal has been updated to improve how clients request access to [payment methods](viewing-payment-methods.html "Viewing Payment Methods")\ based on country and category rather than one specific payment method.\ \ ##### Reports and Reconciliation\ \ Enhancements have been made to interchange reporting to offer more detailed client reports with a breakdown of each card network transaction and interchange fees. Refer to [Interchange Plus Pricing](interchange-plus-pricing-report.html "Interchange Plus Pricing Report")\ .\ \ [#### October 2021](#idp248905_body)\ \ ##### Client Portal\ \ [Plugins](plugins.html "Plugins")\ have been updated with a new design and for an improved user experience to search what countries and payment categories each plugin supports.\ \ [Wallet](wallets.html "Wallets")\ features have been updated to transfer funds or create a payout in any currencies we support for FX.\ \ Updates have been made to Client Portal to allow wallet transfers with FX from one wallet type to another (e.g., Client to Client, End user to end user, client to End user).\ \ The Create Payout function in the client portal has been updated to add an optional field, Statement Descriptor, that includes the reason for the payout as described in Payout Object.\ \ ##### Rapyd Verify\ \ The country field has been moved to the top of the screen and the required fields will update based on the country selected. Refer to [Rapyd Verify Hosted Page](rapyd-verify-hosted-page.html "Rapyd Verify Hosted Page")\ for more information on the use case.\ \ [#### September 2021](#idp248919_body)\ \ ##### Collect\ \ The “CUSTOMER\_PAYMENT\_METHOD\_CREATED” webhook has been updated to include the next\_action field, which indicates the next step for verifying and capturing a payment method relevant to the type (e.g., 3d\_verification for 3DS cards).\ \ ##### Wallet\ \ The [Identity Verification](identity-verification.html "Identity Verification")\ object has been updated to make back\_side\_image optional for all application types except for the passport.\ \ ##### Client Portal\ \ The Client Portal guide to View the List of Values within the Client Portal has been posted.\ \ [#### August 2021](#idp248931_body)\ \ ##### Client Portal\ \ Updates have been made to Client Portal to improve the [Wallet Balances Account Summary](viewing-client-wallet-balances.html "Viewing Client Wallet Balances")\ under My Account. You can view balances of different currencies, wallet transactions, and fees. Learn more at Viewing Client Wallet Balances, or Previewing Client Wallet Details.\ \ A Disputes section has been added to Client Portal to help you accept, or challenge the dispute sent by the card issuer or bank. Learn more at Listing Disputes or Viewing Dispute Details.\ \ The Client Portal guide to request a payment method or a payout method within the Client Portal has been posted. Find out how to view all your Payment or Payout Methods at Viewing Payment Methods or Viewing Payout Methods.\ \ The Client Portal guide to creating a customer within the Client Portal has been posted. Learn more at [Creating a Customer](creating-a-customer.html "Creating a Customer")\ to view the Client Portal guide or \[Create Customer\] to view the API.\ \ ##### Foreign Exchange (FX)\ \ The [Get FX Rate](get-fx-rate.html "Get FX Rate")\ API now allows the user to provide a range of dates in the past. Clients can request the exchange rate for the range of dates in the past as opposed to a single date. For example, the date could be 2020-08-22 with the format of YYYY-MM-DD.\ \ [#### July 2021](#idp248945_body)\ \ ##### Client Portal\ \ Client Portal Accounts now can use a Two-Factor Authenticator (2FA) App as described in the [Client Portal Guide](client-portal-guide.html "Client Portal Guide")\ . New user accounts signing up for Client Portal can follow the Use Two-Factor Authentication App page.\ \ ##### Collect\ \ The Sandbox Card payment has been updated to reflect an improved design and user experience. Refer to [Card Payment with 3DS Verification](card-payment-with-3ds-verification.html "Card Payment With 3DS Verification")\ for more details.\ \ The Sandbox Bank Redirect payment has been updated to reflect an improved design and user experience. Refer to [Bank Redirect](bank-redirect.html "Bank Redirect")\ for more details.\ \ ##### Wallet\ \ Two new fields have been added to the Wallet Contact object required for Brazilian real (BRL) KYB regulation: `transaction_permissions` and `role_in_company`. Refer to the `issued_card_data` object under [Wallet Contact](wallet-contact-365061.html "Wallet Contact")\ for more details.\ \ [#### June 2021](#idp248964_body)\ \ ##### Collect\ \ The following Javascript events have been updated to reflect a more accurate description. The former event names will be deprecated.\ \ * checkoutOnLoading is now onLoading\ \ * checkoutOnSuccess is now onCheckoutPaymentSuccess\ \ * checkoutOnFailed is now onCheckoutPaymentFailure\ \ * checkoutOnCardEdit is now onCheckoutUpdateCardSuccess\ \ * checkoutOnCardDelete is now onCheckoutDeleteCardSuccess\ \ \ The following events have been added.\ \ * onCheckoutUpdateCardFailure\ \ * onCheckoutDeleteCardFailure\ \ * onCheckoutFailure\ \ \ The cardholder\_preferred\_currency parameter within the custom\_elements object will be renamed to dynamic\_currency\_conversion. The former parameter name will become deprecated.\ \ ##### Save Card Details Page\ \ The following Javascript events have been updated to reflect a more accurate description. The former event names will be deprecated.\ \ * cardTokenizationOnSuccess is now onSaveCardDetailsSuccess\ \ * cardTokenizationOnCreate is now onSaveCardDetailsSuccess\ \ * cardTokenizationOnFail is now onSaveCardDetailsFailure\ \ * checkoutOnFailed is now onCardDetailsFailure\ \ \ ##### Save Beneficiary Details Hosted Page\ \ The following Javascript events have been updated to reflect a more accurate description. The former event names will be deprecated in the future.\ \ * checkoutOnSuccess is now onCreateBeneficiarySuccess\ \ * checkoutOnFailed is now onCreateBeneficiaryFailure\ \ \ The following events have been added\ \ * onLoading\ \ * onBeneficiaryFailure -(Triggered when different errors are returned from the API but not during the main action of the beneficiary creation.)\ \ \ ##### Issued Card Hosted Page\ \ The following Javascript events have been updated to reflect a more accurate description. The former event names will be deprecated in the future.\ \ * issuingOnSuccess is now onDisplayIssuedCardDetailsSuccess\ \ * issuingOnFail is now onDisplayIssuedCardDetailsFailure\ \ \ The following events have been added.\ \ * onLoading\ \ * onIssuedCardDetailsFailure\ \ \ ##### Hosted IDV Solution\ \ The following Javascript events have been updated to reflect a more accurate description. The former event names will be deprecated in the future.\ \ * idvOnSuccess is now onSubmitIdvSuccess\ \ * idvOnFail is now onSubmitIdvFailure\ \ \ The following events have been added.\ \ * onLoading\ \ * onIdvFailure\ \ \ [#### May 2021](#idp249043_body)\ \ ##### Collect\ \ Merchants can now generate a Hosted Checkout Page and split the payment between multiple wallets based on percentages or payment amounts.\ \ Improved user experience for payment required fields of string type limited to digits-only values. These fields now accept only digits inputs; az numpad is opened on mobile by default. Additionally, there is validation on the input length so that the user cannot type in more digits than required.\ \ Hosted pages now have dedicated webpage titles rather than a general "Checkout" header as the title. Please note this only applies to the full-page desktop view.\ \ A new field has been added, next\_action, that indicates the action for completing the payment. (e.g., the next step for 3DS verification and capturing a payment relevant to card payments or non-card confirming a payment). Learn more details on the Payment Object fields table.\ \ Virtual Accounts are used to move funds using bank transfers to another Virtual Account tied to a user wallet. The following APIs have been created to help retrieve Virtual Account details:\ \ ##### Wallet\ \ Clients can now generate a hosted IDV page with custom URLs for requests when the page is completed or canceled. The user is redirected to the URL when completing the IDV flow or canceling it.\ \ Virtual Accounts are used to move funds using bank transfers to another Virtual Account tied to a user's wallet. The following APIs have been created to help retrieve Virtual Account details:\ \ * Retrieve Issued Bank Transaction Remitter Details (Virtual Account Transaction Details) has been created to receive Virtual Account transaction details.\ \ * Merchants are now able to issue returns on Static VA transactions.\ \ \ [#### April 2021](#idp249061_body)\ \ ##### Collect\ \ All the [hosted pages](checkout-toolkit-integration.html "Checkout Toolkit Integration")\ now support the following translations: Japanese, French, Hindi, Vietnamese, and Bahasa Malayu (Malaysian).\ \ The languages menu has been redesigned for an improved display of all the available languages (17 in total, including English). The languages are sorted to prioritize the first listed language based on the location of the buyer.\ \ Added tooltips to the Rapyd plugin page on [Woocommerce](rapyd-payments-app-for-woocommerce.html "Rapyd Payments App for WooCommerce")\ .\ \ ##### Wallet\ \ Client reports [enhancements](reports-367106.html "Reports")\ (Reconciliation and Settlement).\ \ Added issued card information to client reports for Rapyd-issued card transactions.\ \ [#### March 2021](#idp249075_body)\ \ ##### Collect\ \ The Client Portal has been updated with new designs and features for you to manage your Rapyd accounts as described below:\ \ * Left-side navigation, table reports and color scheme has been updated to reflect a cleaner, more brand-accurate design.\ \ * You can now simulate fraud rules with Rapyd Protect to know how many transactions it would have flagged over the last 60 days.\ \ \ ##### Wallet\ \ The card payment method types displayed to the customer on the hosted checkout page and hosted tokenization page are now based on the customer’s country (e.g., from the Create Checkout Page request).\ \ If the merchant doesn't have any relevant payment method types assigned to them, the payment method types that are being displayed are based on the country.\ \ Dutch translation is now available for all the hosted pages. Refer to Checkout Toolkit Integration - Translations for more details.\ \ The Checkout page user flow has been optimized for failed/canceled redirect-type payments (e.g., card with 3DS, bank\_redirect, ewallet type redirect). When the customer is redirected to the URL to complete the payment, and the payment cancels or fails, the customer is now redirected back to the checkout payment page, where they can attempt to pay again.\ \ This workflow improves the user experience to keep the user within the checkout page rather than directing to a separate error page.\ \ [#### Februaruy 2021](#idp249092_body)\ \ ##### Collect\ \ Hosted Checkout Page user experience optimization:\ \ * Payment Method Type and categories are now sorted by usage (per merchant, per country).\ \ * End users who must fill in billing address fields have their country pre-populated by default for improved experience and conversion.\ \ * Localization of the number formatting based on locale. That includes the dynamic use of a dot, comma to separate thousands, and currency location (left or right of the amount).\ \ * Clients can now choose to display a payment description on the checkout page.\ \ \ Card payments on the Hosted Checkout page.\ \ * A detailed description message is displayed when the card expiration date field is in focus, with the required date format, to provide a clearer and smoother experience.\ \ * The billing address fields are now ordered for a more intuitive experience for the customer.\ \ * Clients can generate the Checkout page for payments with FX, including designated sell currency (fixed\_side: sell) and FX fees (payment\_fees object).\ \ \ Checkout Integration Improvements\ \ * The Checkout cart items object feature supports items with 0 amount and allows clients to represent gifts to a recipient in the cart breakdown.\ \ * Clients who integrate the Checkout Toolkit can now choose to embed it as an even smaller element, displaying only the payment fields without order details and amount.\ \ \ Foreign Exchange\ \ * Create Payment with FX and Split Payment with FX have transaction fees enabled.\ \ \ [#### January 2021](#idp249124_body)\ \ ##### Collect\ \ Card input fields (e.g., card exp. date, CVV, etc.) have been reordered for a more intuitive user experience.\ \ UI improvements have been made for the cart items feature and the mobile flow to include the item details (e.g., item name, amount, quantity) from the shopping cart to be displayed on the checkout page.\ \ Clients who implement the Checkout Toolkit on their website (iframe) and allow their users to change the language (e.g., a language picker on the page) can now ensure that the language of the checkout payment fields within the iframe is updated accordingly in real-time.\ \ The Save Card Details Page allows merchants to redirect users to custom URLs when exiting the page before completion and after tokenizing a card.\ \ When a Hosted Page is generated with an unsupported language in the request, the default language of the user’s browser is now being used, or will default to English.\ \ ##### Wallet\ \ The Hosted IDV (Identify Verification) Page is now available in all our supported languages, including Spanish, Icelandic, German, Indonesian, Korean, Portuguese, Thai, Tagalog, Simplified Chinese, and Traditional Chinese. Refer to Checkout Toolkit Translations for a full list of languages.\ \ ##### Foreign\ \ The Currency Object has been updated to include the ISO-4217 numeric code standards (numeric\_code) and the number of digits after the decimal point. See List Currencies.\ \ In this section:\ \ Search results\ --------------\ \ No results found\ \ * [Prev](viewing-support-tickets.html#idp248064)\ \ * [Next](product-changelog.html#idp248110) --- # Reports [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * Reports * [Prev](creating-a-dispute.html#idp264308) * [Next](reports-367106.html#idp264396) ### Reports Rapyd provides financial reports that you can download from the Client Portal. Accessing Reports en/downloading-a-financial-report.html Downloading a Financial Report Download one of the available reports. en/how-to-reconcile.html How to Reconcile Verify your funds settling into your accounts. Report Descriptions en/merchant-reconciliation-report.html Merchant Reconciliation Report List transactions settled during the previous day. en/merchant-settlement-report.html Merchant Settlement Report Account summary of funds settled a day prior. en/interchange-plus-pricing-report.html Interchange Plus Pricing Report Transaction fee summary for card network and interchange. In this section: Search results -------------- No results found * [Prev](creating-a-dispute.html#idp264308) * [Next](reports-367106.html#idp264396) --- # My Account [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * My Account * [Prev](home-page.html#idp249764) * [Next](my-account.html#idp249780) ### My Account **My Account** enables you to manage important information used by the Client Portal. You can do the following: Profiles and Bank Accounts en/managing-my-account.html Managing My Account View and manage your account information. en/viewing-bank-accounts.html Viewing Bank Accounts View your linked bank accounts. en/modifying-bank-account-details.html Modifying Bank Account Details Edit bank account details. en/deleting-a-bank-account.html Deleting a Bank Account Remove bank accounts. Client Wallet Balances and Funding Accounts en/viewing-client-wallet-balances.html Viewing Client Wallet Balances View Your company's wallet balances. en/previewing-client-wallet-details.html Previewing Client Wallet Details View transactions with your client wallet. en/multi-wallet-client-account.html Multi-Wallet Client Account One account with multiple client wallets. en/funding-your-account-via-client-portal.html Funding Your Account via Client Portal Top up your company's client wallet. In this section: Search results -------------- No results found * [Prev](home-page.html#idp249764) * [Next](my-account.html#idp249780) --- # Create Plan [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Plan](plan.html) * Create Plan * [Prev](plan.html) * [Next](update-plan.html) ###### Create Plan Create a pricing plan for services. Relevant to a product that has `type` set to **service**. This method triggers the **Plan Created** webhook. This webhook contains the same information as the response. [###### Parameters](#idp300236_body) [###### Request Header Parameters](#idp300238_body) [###### Request Body Parameters](#idp300298_body) [###### Response Parameters](#idp300534_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var metadata = new { merchant\_defined = true }; var requestObj = new { amount = "9.99", currency = "USD", interval = "month", product = "product\_bae271e2e973594ed82b7d2b18a8b2ff", aggregate\_usage = "", billing\_scheme = "per\_unit", nickname = "sbp", trial\_period\_days = "7", usage\_type = "licensed", }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/plans", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { amount: '9.99', currency: 'USD', interval: 'month', product: 'product\_4ba001c7655c4a0ee4f471dbaccaa305', aggregate\_usage: '', billing\_scheme: 'per\_unit', nickname: 'sbp', metadata: { merchant\_defined: true }, trial\_period\_days: '7', usage\_type: 'licensed' }; const result = await makeRequest('POST', '/v1/plans', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ "amount" => "9.99",\ "currency" => "USD",\ "interval" => "month",\ "product" => "product\_bae271e2e973594ed82b7d2b18a8b2ff",\ "aggregate\_usage" => "",\ "billing\_scheme" => "per\_unit",\ "nickname" => "sbp",\ "trial\_period\_days" => "7",\ "usage\_type" => "licensed"\ \]; try { $object = make\_request('post', '/v1/plans', $body); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request plan = { "amount": "9.99", "currency": "USD", "interval": "month", "product": "product\_bae271e2e973594ed82b7d2b18a8b2ff", "billing\_scheme": "per\_unit", "nickname": "sbp", "metadata": { "merchant\_defined": True }, "trial\_period\_days": "7", "usage\_type": "licensed" } result = make\_request(method='post', path='/v1/plans', body=plan) pprint(result) * /v1/plans * Create Plan with Tiered Graduated Billing * curl -X post https://sandboxapi.rapyd.net/v1/plans -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "currency": "USD", "product": "product\_fa1b30b1caa6711910f60e758dbe70c6", "nickname": "Transit Use", "usage\_type": "licensed", "trial\_period\_days": "0", "billing\_scheme": "tiered", "tiers\_mode": "graduated", "tiers": \[\ {\ "amount": 4,\ "up\_to": 5,\ "flat\_amount": 1\ },\ {\ "amount": 3,\ "up\_to": 10\ },\ {\ "amount": 2,\ "up\_to": 20\ },\ {\ "amount": 1,\ "up\_to": "inf"\ }\ \], "interval": "month", "interval\_count": "1" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "9a43aa30-f245-4256-8aaa-34b9ddb349a7" }, "data": { "id": "plan\_d2b079cfbe29fc802baf215aa64bb1fa", "aggregate\_usage": "sum", "amount": 0, "billing\_scheme": "tiered", "created\_at": 1673499122, "currency": "USD", "interval": "month", "interval\_count": 1, "metadata": {}, "product": { "id": "product\_fa1b30b1caa6711910f60e758dbe70c6", "active": true, "attributes": \[\ "quantity"\ \], "created\_at": 1673498178, "description": "Public Transportation Usage", "images": \[\ "64bit-encoded-image-1"\ \], "metadata": { "merchant\_defined": true }, "name": "Transit Rides", "package\_dimensions": { "height": 0, "length": 0, "weight": 0, "width": 0 }, "shippable": false, "skus": \[\], "statement\_descriptor": "Transit Usage", "type": "services", "unit\_label": "rides", "updated\_at": 1673498178 }, "nickname": "Transit Use", "tiers": \[\ {\ "amount": 4,\ "up\_to": 5,\ "flat\_amount": 1\ },\ {\ "amount": 3,\ "up\_to": 10,\ "flat\_amount": 0\ },\ {\ "amount": 2,\ "up\_to": 20,\ "flat\_amount": 0\ },\ {\ "amount": 1,\ "up\_to": "inf",\ "flat\_amount": 0\ }\ \], "tiers\_mode": "graduated", "transform\_usage": { "divide\_by": 1, "round": "up" }, "trial\_period\_days": 0, "usage\_type": "licensed" } } * Create Plan with Tiered Volume Billing * curl -X post https://sandboxapi.rapyd.net/v1/plans -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "currency": "USD", "product": "product\_88fde8f1365082b50e8f4b37127edd99", "nickname": "SaaS Users", "usage\_type": "licensed", "trial\_period\_days": "0", "billing\_scheme": "tiered", "tiers\_mode": "volume", "tiers": \[\ {\ "amount": 35,\ "up\_to": 5,\ "flat\_amount": 25\ },\ {\ "amount": 30,\ "up\_to": 10\ },\ {\ "amount": 25,\ "up\_to": 25\ },\ {\ "amount": 20,\ "up\_to": 100\ },\ {\ "amount": 15,\ "up\_to": 500\ },\ {\ "amount": 10,\ "up\_to": "inf"\ }\ \], "interval": "month", "interval\_count": "2" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "5891b0f4-0953-4037-a89e-3c2a4a1dfc39" }, "data": { "id": "plan\_8b2e324c0d90c030acc9c40cff66e019", "aggregate\_usage": "sum", "amount": 0, "billing\_scheme": "tiered", "created\_at": 1673509721, "currency": "USD", "interval": "month", "interval\_count": 2, "metadata": {}, "product": { "id": "product\_88fde8f1365082b50e8f4b37127edd99", "active": true, "attributes": \[\ "users"\ \], "created\_at": 1673509005, "description": "SaaS Users", "images": \[\ "64bit-encoded-image-1"\ \], "metadata": { "merchant\_defined": true }, "name": "SaaS Users", "package\_dimensions": { "height": 0, "length": 0, "weight": 0, "width": 0 }, "shippable": false, "skus": \[\], "statement\_descriptor": "Number of Users", "type": "services", "unit\_label": "users", "updated\_at": 1673509005 }, "nickname": "SaaS Users", "tiers": \[\ {\ "amount": 35,\ "up\_to": 5,\ "flat\_amount": 25\ },\ {\ "amount": 30,\ "up\_to": 10,\ "flat\_amount": 0\ },\ {\ "amount": 25,\ "up\_to": 25,\ "flat\_amount": 0\ },\ {\ "amount": 20,\ "up\_to": 100,\ "flat\_amount": 0\ },\ {\ "amount": 15,\ "up\_to": 500,\ "flat\_amount": 0\ },\ {\ "amount": 10,\ "up\_to": "inf",\ "flat\_amount": 0\ }\ \], "tiers\_mode": "volume", "transform\_usage": { "divide\_by": 1, "round": "up" }, "trial\_period\_days": 0, "usage\_type": "licensed" } } * Create Plan with Transformation Pricing * curl -X post https://sandboxapi.rapyd.net/v1/plans -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 1500, "currency": "USD", "product": "product\_88fde8f1365082b50e8f4b37127edd99", "nickname": "Licenses", "usage\_type": "licensed", "trial\_period\_days": "0", "billing\_scheme": "per\_unit", "transform\_usage": { "divide\_by": 5, "round": "up" }, "interval": "month", "interval\_count": "2" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "137995a0-b968-4caa-b662-d40cfdda30aa" }, "data": { "id": "plan\_747e00631a2e8ef0322e5473ac1373dd", "aggregate\_usage": "sum", "amount": 1500, "billing\_scheme": "per\_unit", "created\_at": 1673873968, "currency": "USD", "interval": "month", "interval\_count": 2, "metadata": {}, "product": { "id": "product\_88fde8f1365082b50e8f4b37127edd99", "active": true, "attributes": \[\ "users"\ \], "created\_at": 1673509005, "description": "SaaS Users", "images": \[\ "64bit-encoded-image-1"\ \], "metadata": { "merchant\_defined": true }, "name": "SaaS Users", "package\_dimensions": { "height": 0, "length": 0, "weight": 0, "width": 0 }, "shippable": false, "skus": \[\], "statement\_descriptor": "Number of Users", "type": "services", "unit\_label": "users", "updated\_at": 1673509005 }, "nickname": "Licenses", "tiers": \[\], "tiers\_mode": "", "transform\_usage": { "divide\_by": 5, "round": "up" }, "trial\_period\_days": 0, "usage\_type": "licensed" } } * Create Plan with Metered Pricing * curl -X post https://sandboxapi.rapyd.net/v1/plans -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 12.00, "currency": "USD", "product": "product\_5a3e46804b01c4999cd061f032a02aea", "nickname": "Hourly Metered Parking", "trial\_period\_days": "0", "billing\_scheme": "per\_unit", "usage\_type": "metered", "aggregate\_usage": "sum", "transform\_usage": { "divide\_by": 60, "round": "up" }, "interval": "day", "interval\_count": "1" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "16e0a30f-6f7b-4dcd-9137-7a80e83e04b7" }, "data": { "id": "plan\_ef238e1a7dea4b121c584dcbddb369ff", "aggregate\_usage": "sum", "amount": 12, "billing\_scheme": "per\_unit", "created\_at": 1673881640, "currency": "USD", "interval": "day", "interval\_count": 1, "metadata": {}, "product": { "id": "product\_5a3e46804b01c4999cd061f032a02aea", "active": true, "attributes": \[\ "location",\ "size"\ \], "created\_at": 1673881298, "description": "Covered parking - compact car", "images": \[\ "64bit-encoded-image-1"\ \], "metadata": {}, "name": "Hourly parking", "package\_dimensions": { "height": 0, "length": 0, "weight": 0, "width": 0 }, "shippable": false, "skus": \[\], "statement\_descriptor": "Hourly parking", "type": "services", "unit\_label": "day", "updated\_at": 1673881298 }, "nickname": "Hourly Metered Parking", "tiers": \[\], "tiers\_mode": "", "transform\_usage": { "divide\_by": 60, "round": "up" }, "trial\_period\_days": 0, "usage\_type": "metered" } } * Create Plan with Trial Period * curl -X post https://sandboxapi.rapyd.net/v1/plans -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 9.99, "currency": "USD", "interval": "month", "product": "product\_4ba001c7655c4a0ee4f471dbaccaa305", "nickname": "Unlimited Plan", "usage\_type": "licensed", "trial\_period\_days": "7" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "a9073a41-aa8b-44ea-817f-66d0c25ae0f3" }, "data": { "id": "plan\_0c65651401695a12ccea5de0f38bf904", "aggregate\_usage": "sum", "amount": 9.99, "billing\_scheme": "per\_unit", "created\_at": 1673933015, "currency": "USD", "interval": "month", "interval\_count": 1, "metadata": {}, "product": { "id": "product\_4ba001c7655c4a0ee4f471dbaccaa305", "active": true, "attributes": \[\ "location",\ "size"\ \], "created\_at": 1673932995, "description": "Unlimited music streaming", "images": \[\ "64bit-encoded-image-1",\ "64bit-encoded-image-2"\ \], "metadata": {}, "name": "Unlimited Music", "package\_dimensions": { "height": 0, "length": 0, "weight": 0, "width": 0 }, "shippable": false, "skus": \[\], "statement\_descriptor": "Music streaming", "type": "services", "unit\_label": "month", "updated\_at": 1673932995 }, "nickname": "Unlimited Plan", "tiers": \[\], "tiers\_mode": "", "transform\_usage": { "divide\_by": 1, "round": "up" }, "trial\_period\_days": 7, "usage\_type": "licensed" } } * Create Inactive Plan * curl -X post https://sandboxapi.rapyd.net/v1/plans -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 9.99, "currency": "USD", "interval": "month", "product": "product\_c4da1175a369d51273d1bfa1dcf90e1e", "nickname": "Unlimited Plan", "usage\_type": "licensed", "trial\_period\_days": "7", "active": false } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "66bcc473-6868-4784-b955-6e2cb1fdf436" }, "data": { "id": "plan\_9e6cb6fb8a981bfea46c27271fb8eef9", "aggregate\_usage": "sum", "amount": 9.99, "billing\_scheme": "per\_unit", "created\_at": 1693830850, "currency": "USD", "interval": "month", "interval\_count": 1, "metadata": {}, "product": { "id": "product\_c4da1175a369d51273d1bfa1dcf90e1e", "active": true, "attributes": \[\ "location",\ "size"\ \], "created\_at": 1693810492, "description": "Monthly parking - covered area, compact car", "images": \[\ "64bit-encoded-image-1",\ "64bit-encoded-image-2"\ \], "metadata": { "merchant\_defined": true }, "name": "Monthly parking", "package\_dimensions": { "height": 0, "length": 0, "weight": 0, "width": 0 }, "shippable": false, "skus": \[\], "statement\_descriptor": "", "type": "services", "unit\_label": "", "updated\_at": 1693810492 }, "nickname": "Unlimited Plan", "tiers": \[\], "tiers\_mode": "", "transform\_usage": { "divide\_by": 1, "round": "up" }, "trial\_period\_days": 7, "usage\_type": "licensed", "active": false } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](plan.html) * [Next](update-plan.html) --- # Downloading a Sample Mass Payment File [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Collect](collect.html) * [Payment Features](payment-features-479258.html) * Downloading a Sample Mass Payment File * [Prev](creating-mass-payments.html#idp255094) * [Next](downloading-a-sample-mass-payment-file.html#idp255126) ##### Downloading a Sample Mass Payment File Download a sample mass payment file to serve as a template for your own file. This is the first step in [Creating Mass Payments](creating-mass-payments.html "Creating Mass Payments") . This procedure requires Owner or Administrator privileges. [###### How Download a Sample Mass Payment File](#idp255126_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Collect** > **Payment Features** > **Mass Payments**. The **Mass Payments** page appears. ![648874fc466ae.png](image/16763ca4828b9b.png) 2. Select **Download Sample File** A Sample File dialog box appears. ![648874feba604.png](image/16763ca4832bde.png) 3. Select the sample file you want to download: * **Payment** - a specific payment method. * **Hosted** - an embedded checkout page. ![6488750073361.png](image/16763ca483c136.png) If you select **Payment**, then you must also select the country, currency, and payment method type. 4. Click the **Download** button. The sample mass payment file is downloaded to your computer. The file is in CSV format. ![64887502a2e6a.png](image/16763ca4845d9a.png) The file includes a row containing the names of the required and optional fields for the specific payment type or checkout page. The following is a sample file for the 'us\_psc\_cash' payment type. 5. Continue to [Creating a Mass Payment File](creating-a-mass-payment-file.html "Creating a Mass Payment File") . **Sample CSV File** amount,currency,country,payment\_method,payment\_method.type,expiration,merchant\_reference\_id,customer,description,complete\_payment\_url,error\_payment\_url In this section: Search results -------------- No results found * [Prev](creating-mass-payments.html#idp255094) * [Next](downloading-a-sample-mass-payment-file.html#idp255126) --- # Create Subscription [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription](subscription-364807.html) * Create Subscription * [Prev](subscription-364807.html) * [Next](update-subscription.html) ###### Create Subscription Create a subscription for regular, automatic payments. This method triggers the **Customer Subscription Created** webhook. This webhook contains the same information as the response. The following asynchronous webhooks provide information about later changes to the subscription: * [Invoice Created Webhook](invoice-created-webhook.html "Invoice Created Webhook") * [Invoice Finalized Webhook](invoice-finalized-webhook.html "Invoice Finalized Webhook") * [Invoice Payment Created Webhook](invoice-payment-created-webhook.html "Invoice Payment Created Webhook") * [Invoice Payment Failed Webhook](invoice-payment-failed-webhook.html "Invoice Payment Failed Webhook") * [Invoice Payment Succeeded Webhook](invoice-payment-succeeded-webhook.html "Invoice Payment Succeeded Webhook") * [New Cycle Started Webhook](new-cycle-started-webhook.html "New Cycle Started Webhook") * [Payment Completed Webhook](payment-completed-webhook.html "Payment Completed Webhook") * [Payment Failed Webhook](payment-failed-webhook.html "Payment Failed Webhook") * [Payment Succeeded Webhook](payment-succeeded-webhook.html "Payment Succeeded Webhook") * [Subscription Unpaid Webhook](subscription-unpaid-webhook.html "Subscription Unpaid Webhook") * [Subscription Past Due Webhook](subscription-past-due-webhook.html "Subscription Past Due Webhook") * [Subscription Updated Webhook](subscription-updated-webhook.html "Subscription Updated Webhook") * [Trial Nearing End Webhook](trial-nearing-end-webhook.html "Trial Nearing End Webhook") Depending on the parameters in the request, some of these webhooks are triggered synchronously. ### Note * Clients with [PCI](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pci "Payment Card Industry") certification can handle personal identifying information for cards. Clients that are not PCI-certified can use [Checkout Page](checkout-page.html "Checkout Page") or [Payment Link](payment-link.html "Payment Link") to collect money from a card. * Before you create a subscription with a payment method token, verify that the value of `is_tokenizable` is **true**. See also [Payment Method Type](payment-method-type.html "Payment Method Type") . * If the payment method category is **card**, certain operations require 3DS authentication. To simulate this authentication in the sandbox, use the URL from the `redirect_url` field that appears in [Invoice Payment Created Webhook](invoice-payment-created-webhook.html "Invoice Payment Created Webhook") and [Payment Succeeded Webhook](payment-succeeded-webhook.html "Payment Succeeded Webhook") . See [Simulating 3DS Authentication](simulating-3ds-authentication.html "Simulating 3DS Authentication") . * A **card** payment that requires 3DS authentication must be authenticated within 15 minutes. * All plans in the subscription must have the same value for `trial_period_days`. [###### Parameters](#idp302263_body) [###### Request Header Parameters](#idp302265_body) [###### Request Body Parameters](#idp302325_body) [###### Response Parameters](#idp302504_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var requestObj = new { customer = "cus\_ec543c4dfcf6ac1d015b2e3e4fd07180", billing = "pay\_automatically", billing\_cycle\_anchor = "", cancel\_at\_period\_end = true, coupon = "", days\_until\_due = string.Empty, payment\_method = "card\_156da7de485275ad0bae798b7cb8fea1", subscription\_items = new Object\[\] { new { plan = "plan\_51788cf4ed1b672cb0a2a97773887f5b", quantity = 1 } }, metadata = new { merchant\_defined = true }, tax\_percent = 10.5, trial\_end = 0, trial\_from\_plan = true, trial\_period\_days = string.Empty, plan\_token = "" }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/payments/subscriptions", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { customer: 'cus\_ec543c4dfcf6ac1d015b2e3e4fd07180', billing: 'pay\_automatically', billing\_cycle\_anchor: '', cancel\_at\_period\_end: true, coupon: '', days\_until\_due: null, payment\_method: 'card\_156da7de485275ad0bae798b7cb8fea1', subscription\_items: \[\ {\ plan: 'plan\_51788cf4ed1b672cb0a2a97773887f5b',\ quantity: 1\ }\ \], metadata: { merchant\_defined: true }, tax\_percent: 10.5, trial\_end: 0, trial\_from\_plan: true, trial\_period\_days: null, plan\_token: '' }; const result = await makeRequest('POST', '/v1/payments/subscriptions', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $body = \[\ "customer" => "cus\_ec543c4dfcf6ac1d015b2e3e4fd07180",\ "billing" => "pay\_automatically",\ "billing\_cycle\_anchor" => "",\ "cancel\_at\_period\_end" => true,\ "coupon" => "",\ "days\_until\_due" => null,\ "payment\_method" => "card\_156da7de485275ad0bae798b7cb8fea1",\ "subscription\_items" => \[\ array(\ "plan" => "plan\_51788cf4ed1b672cb0a2a97773887f5b",\ "quantity" => 1\ )\ \],\ "metadata" => array(\ "merchant\_defined" => true\ ),\ "tax\_percent" => 10.5,\ "trial\_end" => 0,\ "trial\_from\_plan" => true,\ "trial\_period\_days" => null,\ "plan\_token" => ""\ \]; $object = make\_request('post', '/v1/payments/subscriptions', $body); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request subscription = { "customer": "cus\_ec543c4dfcf6ac1d015b2e3e4fd07180", "billing": "pay\_automatically", "billing\_cycle\_anchor": "", "cancel\_at\_period\_end": True, "coupon": "", "days\_until\_due": "", "payment\_method": "card\_156da7de485275ad0bae798b7cb8fea1", "subscription\_items": \[\ {\ "plan": "plan\_51788cf4ed1b672cb0a2a97773887f5b",\ "quantity": 1\ }\ \], "metadata": { "merchant\_defined": True }, "tax\_percent": 10.5, "trial\_end": 0, "trial\_from\_plan": True, "trial\_period\_days": "", "plan\_token": "", } result = make\_request(method='post', path='/v1/subscriptions', body=subscription) pprint(result) * /v1/payments/subscriptions * Create Subscription * curl -X post https://sandboxapi.rapyd.net/v1/payments/subscriptions -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "customer": "cus\_b306773fc73d23e5a9b4347984606cf7", "billing": "pay\_automatically", "cancel\_at\_period\_end": true, "coupon": "", "payment\_method": "card\_3c000ae5db06762a2c8a00ca514fa336", "subscription\_items": \[\ {\ "plan": "plan\_aa8c4248e0f2a8cdc5f2139a8bf38f10",\ "quantity": 1\ }\ \], "metadata": { "merchant\_defined": true }, "tax\_percent": 10.5, "trial\_end": 0, "trial\_from\_plan": true, "trial\_period\_days": null, "proration\_date":"1699194033" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "af5d9b80-9d3f-4f2c-9594-5904787ea7fd" }, "data": { "id": "sub\_e434b29193daa54d384da87c4ef03c46", "billing": "pay\_automatically", "billing\_cycle\_anchor": 1698589289, "created\_at": 1698589289, "customer\_token": "cus\_b306773fc73d23e5a9b4347984606cf7", "days\_until\_due": 30, "metadata": { "merchant\_defined": true }, "tax\_percent": 10.5, "cancel\_at\_period\_end": true, "canceled\_at": null, "current\_period\_end": 1701267689, "current\_period\_start": 1698589289, "discount": null, "ended\_at": null, "subscription\_items": { "data": \[\ {\ "id": "subi\_327bf79d360433c6fc693285ff994d76",\ "created": 1698589289,\ "metadata": null,\ "quantity": 1,\ "plan": {\ "id": "plan\_aa8c4248e0f2a8cdc5f2139a8bf38f10",\ "aggregate\_usage": "sum",\ "amount": 0,\ "billing\_scheme": "tiered",\ "created\_at": 1698588009,\ "currency": "USD",\ "interval": "month",\ "interval\_count": 1,\ "metadata": {},\ "product": "product\_af760dadef7c1d4106e2558bcf6799f9",\ "nickname": "Transit Use",\ "tiers": \[\ {\ "amount": 4,\ "up\_to": 5,\ "flat\_amount": 1\ },\ {\ "amount": 3,\ "up\_to": 10,\ "flat\_amount": 0\ },\ {\ "amount": 2,\ "up\_to": 20,\ "flat\_amount": 0\ },\ {\ "amount": 1,\ "up\_to": "inf",\ "flat\_amount": 0\ }\ \],\ "tiers\_mode": "graduated",\ "transform\_usage": {\ "divide\_by": 1,\ "round": "up"\ },\ "trial\_period\_days": 0,\ "usage\_type": "licensed",\ "active": true\ }\ }\ \], "has\_more": false, "total\_count": 0, "url": "/v1/subscription\_items?subscription=sub\_e434b29193daa54d384da87c4ef03c46" }, "status": "active", "trial\_end": null, "trial\_start": null, "payment\_method": "card\_3c000ae5db06762a2c8a00ca514fa336", "payment\_fields": null, "payout\_fields": null, "type": "payment", "simultaneous\_invoice": false } } * Create Subscription with Payment Fields * curl -X post https://sandboxapi.rapyd.net/v1/payments/subscriptions -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "customer": "cus\_b306773fc73d23e5a9b4347984606cf7", "billing": "pay\_automatically", "cancel\_at\_period\_end": false, "coupon": "", "payment\_method": { "type": "gb\_visa\_card", "fields": { "name": "John Doe", "number": "4111111111111111", "expiration\_month": "05", "expiration\_year": "25", "cvv": "111" } }, "subscription\_items": \[\ {\ "plan": "plan\_aa8c4248e0f2a8cdc5f2139a8bf38f10",\ "quantity": 1\ }\ \], "metadata": { "merchant\_defined": "true" }, "tax\_percent": 10.5, "trial\_end": 0, "trial\_from\_plan": true, "trial\_period\_days": "", "payment\_fields": { "error\_payment\_url": "https://error.example1234.net", "complete\_payment\_url": "https://complete.example5678.net" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "bc404739-8ce9-4d4d-8192-2cc6eca89ddb" }, "data": { "id": "sub\_aa388923118ab61a65dd73bdfa2bd3cd", "billing": "pay\_automatically", "billing\_cycle\_anchor": 1700138214, "created\_at": 1700138214, "customer\_token": "cus\_b306773fc73d23e5a9b4347984606cf7", "days\_until\_due": 30, "metadata": { "merchant\_defined": "true" }, "tax\_percent": 10.5, "cancel\_at\_period\_end": false, "canceled\_at": null, "current\_period\_end": 1702730214, "current\_period\_start": 1700138214, "discount": null, "ended\_at": null, "subscription\_items": { "data": \[\ {\ "id": "subi\_295deb5d5052a237ecaee9663ea0365d",\ "created": 1700138214,\ "metadata": null,\ "quantity": 1,\ "plan": {\ "id": "plan\_aa8c4248e0f2a8cdc5f2139a8bf38f10",\ "aggregate\_usage": "sum",\ "amount": 0,\ "billing\_scheme": "tiered",\ "created\_at": 1698588009,\ "currency": "USD",\ "interval": "month",\ "interval\_count": 1,\ "metadata": {},\ "product": "product\_af760dadef7c1d4106e2558bcf6799f9",\ "nickname": "Transit Use",\ "tiers": \[\ {\ "amount": 4,\ "up\_to": 5,\ "flat\_amount": 1\ },\ {\ "amount": 3,\ "up\_to": 10,\ "flat\_amount": 0\ },\ {\ "amount": 2,\ "up\_to": 20,\ "flat\_amount": 0\ },\ {\ "amount": 1,\ "up\_to": "inf",\ "flat\_amount": 0\ }\ \],\ "tiers\_mode": "graduated",\ "transform\_usage": {\ "divide\_by": 1,\ "round": "up"\ },\ "trial\_period\_days": 0,\ "usage\_type": "licensed",\ "active": true\ }\ }\ \], "has\_more": false, "total\_count": 0, "url": "/v1/subscription\_items?subscription=sub\_aa388923118ab61a65dd73bdfa2bd3cd" }, "status": "active", "trial\_end": null, "trial\_start": null, "payment\_method": "card\_a340e3bb4ea898f4d00aff7f454141be", "payment\_fields": { "error\_payment\_url": "https://error.example1234.net", "complete\_payment\_url": "https://complete.example5678.net" }, "payout\_fields": null, "type": "payment", "simultaneous\_invoice": false } } * Create Subscription with Multiple Items * curl -X post https://sandboxapi.rapyd.net/v1/payments/subscriptions -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "customer": "cus\_b306773fc73d23e5a9b4347984606cf7", "billing": "pay\_automatically", "cancel\_at\_period\_end": false, "payment\_method": "card\_3c000ae5db06762a2c8a00ca514fa336", "subscription\_items": \[\ {\ "plan": "plan\_26aabd1d48bcfec1ff05dc2bed772aa3",\ "quantity": 3\ },\ {\ "plan": "plan\_4feb4cf48e807cd142d7759a58a55d2f",\ "quantity": 5\ }\ \] } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "a84d8452-181a-4b10-8357-d991ff35ccda" }, "data": { "id": "sub\_db73da2fc2a7a3b8451fed8afdbaf46c", "billing": "pay\_automatically", "billing\_cycle\_anchor": 1700140716, "created\_at": 1700140716, "customer\_token": "cus\_b306773fc73d23e5a9b4347984606cf7", "days\_until\_due": 30, "metadata": {}, "tax\_percent": 0, "cancel\_at\_period\_end": false, "canceled\_at": null, "current\_period\_end": 1702732716, "current\_period\_start": 1700140716, "discount": null, "ended\_at": null, "subscription\_items": { "data": \[\ {\ "id": "subi\_f0d375617a093d30307adec9ea246b44",\ "created": 1700140716,\ "metadata": null,\ "quantity": 3,\ "plan": {\ "id": "plan\_26aabd1d48bcfec1ff05dc2bed772aa3",\ "aggregate\_usage": "sum",\ "amount": 10.99,\ "billing\_scheme": "per\_unit",\ "created\_at": 1700140584,\ "currency": "USD",\ "interval": "month",\ "interval\_count": 1,\ "metadata": {},\ "product": "product\_4ba001c7655c4a0ee4f471dbaccaa305",\ "nickname": "Unlimited Plan plus",\ "tiers": \[\],\ "tiers\_mode": "",\ "transform\_usage": {\ "divide\_by": 1,\ "round": "up"\ },\ "trial\_period\_days": 7,\ "usage\_type": "licensed",\ "active": true\ }\ },\ {\ "id": "subi\_e3cec118feec75e0f270d888a053a410",\ "created": 1700140716,\ "metadata": null,\ "quantity": 5,\ "plan": {\ "id": "plan\_4feb4cf48e807cd142d7759a58a55d2f",\ "aggregate\_usage": "sum",\ "amount": 9.99,\ "billing\_scheme": "per\_unit",\ "created\_at": 1700140529,\ "currency": "USD",\ "interval": "month",\ "interval\_count": 1,\ "metadata": {},\ "product": "product\_4ba001c7655c4a0ee4f471dbaccaa305",\ "nickname": "Unlimited Plan",\ "tiers": \[\],\ "tiers\_mode": "",\ "transform\_usage": {\ "divide\_by": 1,\ "round": "up"\ },\ "trial\_period\_days": 7,\ "usage\_type": "licensed",\ "active": true\ }\ }\ \], "has\_more": false, "total\_count": 0, "url": "/v1/subscription\_items?subscription=sub\_db73da2fc2a7a3b8451fed8afdbaf46c" }, "status": "active", "trial\_end": null, "trial\_start": null, "payment\_method": "card\_3c000ae5db06762a2c8a00ca514fa336", "payment\_fields": null, "payout\_fields": null, "type": "payment", "simultaneous\_invoice": false } } In this section: All financial institutions that issue cards or process card transactions. The Payment Card Industry Security Standards Council develops and publishes regulations for the industry. The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](subscription-364807.html) * [Next](update-subscription.html) --- # List Payment Methods by Country [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Payment Method Type](payment-method-type.html) * List Payment Methods by Country * [Prev](payment-method-type.html) * [Next](list-payment-methods-by-country.html#idp269802) ##### List Payment Methods by Country Retrieve a list of all payment methods available for a country. You can filter the results by specifying the `currency` query parameter. For general information about payment methods, use the Client Portal. [###### Parameters](#idp269806_body) [###### Request Path Parameters](#idp269808_body) * * country * Two-letter ISO 3166-1 ALPHA-2 code for the country. [###### Request Query Parameters](#idp269817_body) * * currency * Three-letter ISO 4217 code for the currency. [###### Request Header Parameters](#idp269826_body) [###### Response Parameters](#idp269876_body) ###### Code Samples * * .NET * using System; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payment\_methods/countries/IT?currency=EUR"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const result = await makeRequest('GET', '/v1/payment\_methods/countries/IT?currency=EUR'); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $object = make\_request('get', '/v1/payment\_methods/countries/IT?currency=EUR'); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request response = make\_request(method='get', path=f'/v1/payment\_methods/countries/IT?currency=EUR') pprint(response) * /v1/payment\_methods/countries/:country * List Payment Methods by Country * curl -X get https://sandboxapi.rapyd.net/v1/payment\_methods/countries/IS -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "5cf112f3-722c-4d77-b1e8-0e3383e2aef4" }, "data": \[\ {\ "type": "is\_sepadirectdebit\_bank",\ "name": "SEPA Direct Debit - Mandate",\ "category": "bank\_redirect",\ "image": "https://iconslib.rapyd.net/checkout/is\_sepadirectdebit\_bank.png",\ "country": "IS",\ "payment\_flow\_type": "redirect\_url",\ "currencies": \[\ "EUR"\ \],\ "status": 1,\ "is\_cancelable": true,\ "payment\_options": \[\ {\ "name": "customer",\ "type": "customer",\ "regex": "",\ "description": "Customer object.",\ "is\_required": true,\ "is\_updatable": false,\ "required\_fields": \[\ {\ "name": "name",\ "type": "string",\ "regex": "^\[a-zA-Z \]{0,102}$",\ "description": "Customer’s full name",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "phone\_number",\ "type": "string",\ "regex": "^\[+\]\[0-9\]{1,15}$",\ "description": "Customer’s Phone Number",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "email",\ "type": "string",\ "regex": "^(?=.{1,70}$)(\[0-9a-zA-Z\_\]+@\[a-zA-Z\_\]+?\[.\]{1}\[a-zA-Z\]{2,3})$",\ "description": "Customer’s email",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "addresses",\ "type": "address",\ "regex": "",\ "description": "Customer’s address",\ "is\_required": true,\ "is\_updatable": false,\ "required\_fields": \[\ {\ "name": "name",\ "type": "string",\ "regex": "^\[a-zA-Z \]{0,102}$",\ "description": "The name of a contact person or an \`in care of\` person at this address",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "line\_1",\ "type": "string",\ "regex": "^\[a-zA-Z0-9-\_ \]{0,70}$",\ "description": "Street name, building number and apartment number",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "city",\ "type": "string",\ "regex": "^\[a-zA-Z0-9-\_ \]{0,35}$",\ "description": "Customer’s city",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "country",\ "type": "string",\ "regex": "^(\[A-Z\]){2}$",\ "description": "Customer’s country",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "zip",\ "type": "string",\ "regex": "^\[a-zA-Z0-9-\_ \]{0,15}$",\ "description": "Customer’s postal code",\ "is\_required": true,\ "is\_updatable": false\ }\ \]\ }\ \]\ },\ {\ "name": "complete\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "URL where the customer is redirected for final steps in completing the operation.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "error\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "URL where the customer is redirected in case of an error in the operation.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "statement\_descriptor",\ "type": "string",\ "regex": "^.{1,22}",\ "description": "A text description suitable for a customer's payment statement. Limited to 22 characters.",\ "is\_required": false,\ "is\_updatable": false\ }\ \],\ "is\_expirable": false,\ "is\_online": false,\ "is\_refundable": true,\ "minimum\_expiration\_seconds": 0,\ "maximum\_expiration\_seconds": 1209600,\ "virtual\_payment\_method\_type": null,\ "is\_virtual": false,\ "multiple\_overage\_allowed": false,\ "amount\_range\_per\_currency": \[\ {\ "currency": "EUR",\ "maximum\_amount": null,\ "minimum\_amount": null\ }\ \],\ "is\_tokenizable": true,\ "supported\_digital\_wallet\_providers": \[\],\ "is\_restricted": false,\ "supports\_subscription": true\ },\ {\ "type": "is\_visa\_card",\ "name": "Visa",\ "category": "card",\ "image": "https://iconslib.rapyd.net/checkout/is\_visa\_card.png",\ "country": "IS",\ "payment\_flow\_type": "",\ "currencies": \[\ "AED",\ "AUD",\ "BGN",\ "BOB",\ "BRL",\ "BWP",\ "CAD",\ "CHF",\ "CNY",\ "COP",\ "CZK",\ "DKK",\ "EUR",\ "GBP",\ "GEL",\ "GHS",\ "HKD",\ "HRK",\ "HUF",\ "IDR",\ "ILS",\ "INR",\ "ISK",\ "JPY",\ "KES",\ "KZT",\ "MDL",\ "MXN",\ "MYR",\ "NAD",\ "NOK",\ "NZD",\ "PEN",\ "PHP",\ "PLN",\ "RON",\ "RSD",\ "RUB",\ "SEK",\ "SGD",\ "THB",\ "TRY",\ "TWD",\ "TZS",\ "UAH",\ "UGX",\ "USD",\ "UYU",\ "ZAR",\ "ZMW"\ \],\ "status": 1,\ "is\_cancelable": true,\ "payment\_options": \[\ {\ "name": "capture",\ "type": "boolean",\ "regex": "",\ "description": "Determines when the payment is processed for capture.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "complete\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "the complete\_payment\_url field must be filled in.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "error\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "the error\_payment\_url field must be filled in.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "customer",\ "type": "string",\ "regex": "",\ "description": "ID of a customer object, a string starting with ‘cus\_‘. The customer object must contain the fields listed as required, and can contain additional fields listed here.If the customer object does not exist yet, use ‘Create Customer‘",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "initiation\_type",\ "type": "string",\ "regex": "(customer\_present|installment|moto|recurring|unscheduled)",\ "description": "This indicates how the transaction was initiated",\ "is\_required": false,\ "is\_updatable": false\ }\ \],\ "is\_expirable": false,\ "is\_online": false,\ "is\_refundable": true,\ "minimum\_expiration\_seconds": 0,\ "maximum\_expiration\_seconds": 604800,\ "virtual\_payment\_method\_type": null,\ "is\_virtual": false,\ "multiple\_overage\_allowed": false,\ "amount\_range\_per\_currency": \[\ {\ "currency": "AED",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "AUD",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "BGN",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "BOB",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "BRL",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "BWP",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "CAD",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "CHF",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "CNY",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "COP",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "CZK",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "DKK",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "EUR",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "GBP",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "GEL",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "GHS",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "HKD",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "HRK",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "HUF",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "IDR",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "ILS",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "INR",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "ISK",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "JPY",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "KES",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "KZT",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "MDL",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "MXN",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "MYR",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "NAD",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "NOK",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "NZD",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "PEN",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "PHP",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "PLN",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "RON",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "RSD",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "RUB",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "SEK",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "SGD",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "THB",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "TRY",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "TWD",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "TZS",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "UAH",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "UGX",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "USD",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "UYU",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "ZAR",\ "maximum\_amount": null,\ "minimum\_amount": null\ },\ {\ "currency": "ZMW",\ "maximum\_amount": null,\ "minimum\_amount": null\ }\ \],\ "is\_tokenizable": false,\ "supported\_digital\_wallet\_providers": \[\],\ "is\_restricted": false,\ "supports\_subscription": true\ }\ \] } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](payment-method-type.html) * [Next](list-payment-methods-by-country.html#idp269802) --- # Payment Method Type [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * Payment Method Type * [Prev](rapyd-collect-363484.html#UUID-26f072dc-d301-c4e7-f743-19095ba462ff_section-idm4540335554716833923400981121) * [Next](list-payment-methods-by-country.html) #### Payment Method Type A type of payment method that a customer can use for making payments. A **payment method type** is a type of payment method that any customer can use, for example, **ee\_mastercard\_card**, Mastercard for Estonia. When it is added to a customer profile, it becomes a **payment method** that is specific to that one customer. The name of the payment method type starts with a prefix for the country, the 2-letter ISO 3166-1 alpha-2 code. If the payment method is valid in multiple countries, the prefix is **xx\_**. The payment method type has a suffix with one of the following values: * **bank** - Bank transfer or bank redirect * **card** - Credit card, debit card or other card * **cash** - Cash * **ewallet** - Local eWallet If the payment method is a card, the sensitive card details can be handled only by a merchant that is [PCI](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pci "Payment Card Industry") compliant or an app that is under the exclusive control of the card holder. A merchant that is not PCI compliant can use the payment method ID ('token') that is generated by a hosted page. To generate a payment method ID, use one of the following methods: * [Add Payment Method to Customer](add-payment-method-to-customer.html "Add Payment Method to Customer") - For clients with PCI clearance. * [Create Card Token](create-card-token.html "Create Card Token") - For all clients. Methods * [List Payment Methods by Country](list-payment-methods-by-country.html "List Payment Methods by Country") - Provides payment methods available in the specified country. In the sandbox, this method returns all payment method types available on the Rapyd platform. In production, it returns the payment method types that your organization is authorized to use. You might need to use the Client Portal to activate some payment method types. * [Get Payment Method Required Fields](get-payment-method-required-fields.html "Get Payment Method Required Fields") - Determines which fields are required to add a payment method to a customer, subscription, or payment. Errors * [Payment Method Errors](payment-method-errors.html "Payment Method Errors") In this section: All financial institutions that issue cards or process card transactions. The Payment Card Industry Security Standards Council develops and publishes regulations for the industry. Search results -------------- No results found * [Prev](rapyd-collect-363484.html#UUID-26f072dc-d301-c4e7-f743-19095ba462ff_section-idm4540335554716833923400981121) * [Next](list-payment-methods-by-country.html) --- # Get Payment Method Required Fields [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Payment Method Type](payment-method-type.html) * Get Payment Method Required Fields * [Prev](list-payment-methods-by-country.html#idp269802) * [Next](get-payment-method-required-fields.html#idp270159) ##### Get Payment Method Required Fields Retrieve the required fields for a payment method. The fields are returned as a list of objects. The name of each field appears in the `name` field of the response. ### Note * Rapyd employs a unique variant of regex. Note the following differences: * A single backslash matches a backslash as an ordinary character. * A backslash followed by an alphabetic character matches a string of two characters. * A special character such as **\\n** is indicated as **\\\\n**. * Some payment methods require a predefined customer with required fields. See also the example on this page. * Some payment methods require fields when certain conditions are met. * This endpoint replaces the deprecated endpoint - `GET /v1/payment_methods/required_fields/:type` Rapyd will continue to support the deprecated endpoint until December 31, 2024. [###### Parameters](#idp270163_body) [###### Request Path Parameters](#idp270165_body) * * type * The `type` of the payment method. [###### Request Header Parameters](#idp270175_body) [###### Response Parameters](#idp270225_body) ###### Code Samples * * .NET * using System; namespace RapydApiRequestSample { class Program { static void Main(string\[\]args) { try { string type = "us\_visa\_card"; string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $ "/v1/payment\_methods/{type}/required\_fields"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const result = await makeRequest('GET', '/v1/payment\_methods/us\_visa\_card/required\_fields'); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $object = make\_request('get', '/v1/payment\_methods/us\_visa\_card/required\_fields'); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request payment\_method\_type = "us\_visa\_card" response = make\_request(method='get', path=f'/v1/payment\_methods/{payment\_method\_type}/required\_fields/') pprint(response) * /v1/payment\_methods/:type/required\_fields * Card * curl - X get https: //sandboxapi.rapyd.net/v1/payment\_methods/us\_visa\_card/required\_fields -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "80df644d-c428-4588-9f18-9698a25bbe5d" }, "data": { "type": "us\_visa\_card", "fields": \[\ {\ "name": "number",\ "type": "string",\ "regex": "",\ "is\_required": true,\ "instructions": "card number"\ },\ {\ "name": "expiration\_month",\ "type": "string",\ "regex": "",\ "is\_required": true,\ "instructions": "expiration month as string, 01-12"\ },\ {\ "name": "expiration\_year",\ "type": "string",\ "regex": "",\ "is\_required": true,\ "instructions": "expiration year in to digits as string, 18-99"\ },\ {\ "name": "cvv",\ "type": "string",\ "regex": "",\ "is\_required": false,\ "instructions": "card cvv"\ },\ {\ "name": "name",\ "type": "string",\ "regex": "",\ "is\_required": false,\ "instructions": "card holder name"\ },\ {\ "name": "address",\ "type": "Address",\ "regex": "",\ "is\_required": false,\ "instructions": "card billing address. see Address object for more details"\ }\ \], "payment\_method\_options": \[\ {\ "name": "3d\_required",\ "type": "string",\ "regex": "",\ "description": "",\ "is\_required": false,\ "is\_updatable": false\ }\ \], "payment\_options": \[\ {\ "name": "customer",\ "type": "customer",\ "regex": "",\ "description": "make sure a customer was created with first\_name, last\_name and email",\ "is\_required": true,\ "is\_updatable": false\ }\ \], "minimum\_expiration\_seconds": null, "maximum\_expiration\_seconds": null } } * Cash * curl - X get https: //sandboxapi.rapyd.net/v1/payment\_methods/it\_psc\_cash/required\_fields -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "48d8e711-69ad-46b7-804c-d3c06fdb262b" }, "data": { "type": "it\_psc\_cash", "fields": \[\], "payment\_method\_options": \[\], "payment\_options": \[\], "minimum\_expiration\_seconds": null, "maximum\_expiration\_seconds": null } } * Bank Transfer * curl - X get https: //sandboxapi.rapyd.net/v1/payment\_methods/us\_ach\_bank/required\_fields -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "6027b9d1-f40a-481e-a89e-4934290222db" }, "data": { "type": "us\_ach\_bank", "fields": \[\ {\ "name": "proof\_of\_authorization",\ "type": "boolean",\ "regex": "",\ "description": "Indicates that the requester has received authorization from the payor.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "first\_name",\ "type": "string",\ "regex": "",\ "description": "First name of the payor.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "last\_name",\ "type": "string",\ "regex": "",\ "description": "Last name of the payor.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "company\_name",\ "type": "string",\ "regex": "",\ "description": "Company name, when the payor is a business organization.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "routing\_number",\ "type": "string",\ "regex": "^(\[0-9\]){9,9}$",\ "description": "Bank routing number.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "payment\_purpose",\ "type": "string",\ "regex": "(PAYMENT|VENDOR PMT)",\ "description": "Purpose of the payment.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "account\_number",\ "type": "string",\ "regex": "^(\[0-9\]){1,34}$",\ "description": "The payors bank account number.",\ "is\_required": true,\ "is\_updatable": false\ }\ \], "payment\_method\_options": \[\], "payment\_options": \[\], "minimum\_expiration\_seconds": null, "maximum\_expiration\_seconds": null } } * Customer with Required Fields * curl - X get https: //sandboxapi.rapyd.net/v1/payment\_methods/gb\_trustly\_bank/required\_fields -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "5f25e66f-e7e7-49c5-bb9e-a7c68734adfc" }, "data": { "type": "gb\_trustly\_bank", "fields": \[\], "payment\_method\_options": \[\], "payment\_options": \[\ {\ "name": "customer",\ "type": "customer",\ "regex": "",\ "description": "ID of a customer object, a string starting with ‘cus\_‘. The customer object must contain the fields listed as required, and can contain additional fields listed here.If the customer object does not exist yet, use ‘Create Customer‘",\ "is\_required": true,\ "is\_updatable": false,\ "required\_fields": \[\ {\ "name": "name",\ "type": "string",\ "regex": "^\[0-9a-zA-Z \]{1,128}$",\ "description": "Customer’s full name",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "email",\ "type": "string",\ "regex": "^(?=.{1,100}$)(\[0-9a-zA-Z\_\]+@\[a-zA-Z\_\]+?\[.\]{1}\[a-zA-Z\]{2,3})$",\ "description": "Customer’s Email",\ "is\_required": true,\ "is\_updatable": false\ }\ \]\ }\ \], "minimum\_expiration\_seconds": 0, "maximum\_expiration\_seconds": 1209600 } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](list-payment-methods-by-country.html#idp269802) * [Next](get-payment-method-required-fields.html#idp270159) --- # Create Customer [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Customer](customer.html) * Create Customer * [Prev](customer.html) * [Next](create-customer.html#idp332118) ##### Create Customer Create a customer profile to save the payment methods a customer can use. * To add payment methods, use [Add Payment Method to Customer](add-payment-method-to-customer.html "Add Payment Method to Customer") . * To set the customer’s default payment method, use [Update Customer](update-customer.html "Update Customer") . The response provides a unique Customer ID, which is required for all other operations for this customer. ### Note * If the customer has more than one address, use `Create Customer` to add the primary address and `Update Customer` to add more addresses. * In the sandbox, creating a customer with a **card** payment method type requires 3DS authentication by the cardholder. See [Simulating 3DS Authentication](simulating-3ds-authentication.html "Simulating 3DS Authentication") . This method triggers the [Customer Created Webhook](customer-created-webhook.html "Customer Created Webhook") . This webhook contains the same information as the response. When a customer is created with a **card** payment method type, this method triggers the [Card Added Successfully Webhook](card-added-successfully-webhook.html "Card Added Successfully Webhook") . If 3DS is not required, the webhook is sent together with the response, otherwise, it is sent following 3DS authentication. The following asynchronous webhook provides information about later changes to the customer: * [Card Added Failure Webhook](card-added-failure-webhook.html "Card Added Failure Webhook") [###### Parameters](#idp332122_body) [###### Request Header Parameters](#idp332124_body) [###### Request Body Parameters](#idp332184_body) * * addresses * Array of 'address' objects associated with this customer. For details of the fields in the 'address' object, see [Create Address](create-address.html "Create Address") . * * business\_vat\_id * The tax ID number of the customer. * * coupon * The ID of a coupon that is assigned to this customer. * * description * A text description of the customer. * * email * Customer's email address. Required for some payment methods. * * ewallet * ID of the wallet that is linked to the customer. String starting with **ewallet\_**. Each wallet can be associated with only one customer. * * invoice\_prefix * A custom string that is prefixed to all invoices for this customer. * * metadata * A JSON object defined by the client. * * name * The name of the individual customer or the business name. * * payment\_method * Required when creating a customer with a payment method. Contains the following parameters: `type`, `fields`. Some payment methods require additional parameters. * * payment\_method\_options * Required when creating a customer with a payment method. Additional fields required for the payment method. These values might vary from one use to the next, so they are not saved as part of the payment method object. If your organization manages 3DS authentication then it is recommended to add the 3DS parameters and `currency` parameter to this object. See also the related 'Create Customer with 3DS data & specific currency' sample on this page. * * phone\_number * Customer's primary phone number in E.164 format. [###### Response Parameters](#idp332264_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var metadata = new { merchant\_defined = true }; var requestObj = new { business\_vat\_id = "123456789", email = "johndoe@rapyd.net", ewallet = "ewallet\_ebfe4c4f4d36b076a21369fb0d055f3e", invoice\_prefix = "JD-", metadata, name = "John Doe", phone\_number = "+14155559993" }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/customers", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { business\_vat\_id: '123456789', email: 'johndoe@rapyd.net', ewallet: 'ewallet\_ebfe4c4f4d36b076a21369fb0d055f3e', invoice\_prefix: 'JD-', metadata: { merchant\_defined: true }, name: 'John Doe', phone\_number: '+14155559993' }; const result = await makeRequest('POST', '/v1/customers', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ "business\_vat\_id" => "123456789",\ "email" => "johndoe@rapyd.net",\ "ewallet" => "ewallet\_ebfe4c4f4d36b076a21369fb0d055f3e",\ "invoice\_prefix" => "JD-",\ "name" => "John Doe",\ "phone\_number" => "+14155559993",\ "metadata" => array(\ "merchant\_defined" => true\ )\ \]; try { $object = make\_request('post', '/v1/customers', $body); var\_dump($object); } catch (Exception $e) { echo "Error => $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request customer = { "business\_vat\_id": "123456789", "email": "johndoe@rapyd.net", "ewallet": "ewallet\_ebfe4c4f4d36b076a21369fb0d055f3e", "invoice\_prefix": "JD-", "metadata": { "merchant\_defined": True }, "name": "John Doe", "phone\_number": "+14155559993" } result = make\_request(method='post', path='/v1/customers', body=customer) pprint(result) * /v1/customers * Create Customer without payment method * curl -X post https://sandboxapi.rapyd.net/v1/customers -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "business\_vat\_id": "123456789", "email": "johndoe@rapyd.net", "ewallet": "ewallet\_ebfe4c4f4d36b076a21369fb0d055f3e", "invoice\_prefix": "JD-", "metadata": { "merchant\_defined": true }, "name": "John Doe", "phone\_number": "+14155559993" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "ac7f0144-b3c1-4af1-bd63-2a71d3606395" }, "data": { "id": "cus\_7ccd7fe7fd771f34faa6bd84d920aec4", "delinquent": false, "discount": null, "name": "John Doe", "default\_payment\_method": "", "description": "", "email": "johndoe@rapyd.net", "phone\_number": "+14155559993", "invoice\_prefix": "JD-", "addresses": \[\], "payment\_methods": null, "subscriptions": null, "created\_at": 1575472963, "metadata": { "merchant\_defined": true }, "business\_vat\_id": "123456789", "ewallet": "ewallet\_ebfe4c4f4d36b076a21369fb0d055f3e" } } * Create Customer with payment method * curl -X post https://sandboxapi.rapyd.net/v1/customers -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "name": "John Doe", "business\_vat\_id": "123456666", "email": "johndoe@rapyd.net", "ewallet": "ewallet\_13c6bdf0e6f18415b8b6754a76ce95b2", "invoice\_prefix": "JD-", "metadata": { "merchant\_defined": true }, "payment\_method": { "type": "ua\_visa\_card", "fields": { "number": "4111111111111111", "expiration\_month": "10", "expiration\_year": "23", "cvv": "123", "name": "John Doe" }, "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net" }, "phone\_number": "+14155556666" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "cffec000-2962-485e-832a-4bafee4c41fb" }, "data": { "id": "cus\_aa84d1532589f20702eaa64fde7e547e", "delinquent": false, "discount": null, "name": "John Doe", "default\_payment\_method": "card\_4505175fae2baa6c8e9682357858cd71", "description": "", "email": "johndoe@rapyd.net", "phone\_number": "+14155556666", "invoice\_prefix": "JD-", "addresses": \[\], "payment\_methods": { "data": \[\ {\ "id": "card\_4505175fae2baa6c8e9682357858cd71",\ "type": "ua\_visa\_card",\ "category": "card",\ "metadata": null,\ "image": "https://iconslib.rapyd.net/checkout/ua\_visa\_card.png",\ "webhook\_url": "",\ "supporting\_documentation": "",\ "next\_action": "3d\_verification",\ "name": "John Doe",\ "last4": "1111",\ "acs\_check": "unchecked",\ "cvv\_check": "unchecked",\ "bin\_details": {\ "type": null,\ "brand": null,\ "country": null,\ "bin\_number": "411111"\ },\ "expiration\_year": "23",\ "expiration\_month": "10",\ "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467",\ "redirect\_url": "https://sandboxcheckout.rapyd.net/3ds-payment?token=payment\_a22542357c26715c504558c8240b46b4"\ }\ \], "has\_more": false, "total\_count": 1, "url": "/v1/customers/cus\_aa84d1532589f20702eaa64fde7e547e/payment\_methods" }, "subscriptions": null, "created\_at": 1640099726, "metadata": { "merchant\_defined": true }, "business\_vat\_id": "123456666", "ewallet": "ewallet\_13c6bdf0e6f18415b8b6754a76ce95b2", "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net" } } * Create Customer with 3DS data & specific currency * curl -X post https://sandboxapi.rapyd.net/v1/customers -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d ' { "name": "John Doe", "email": "john.doe@rapyd.net", "payment\_method": { "type": "is\_visa\_card", "fields": { "name": "John Doe", "number": "4111111111111111", "expiration\_month": "05", "expiration\_year": "25", "cvv": "222" }, "complete\_payment\_url": "https://www.example21367.com/complete", "error\_payment\_url": "https://www.example21367.com/error" }, "payment\_method\_options": { "3d\_version": "2.2.0", "cavv": "AddddFVmd4iZAKq7zA3u/wAAA=", "eci": "05", "xid": null, "ds\_trans\_id": "4567a4f1-faa4-49e-39a-3cc977989398", "currency": "EUR" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "5c4ef984-a77a-4a49-b662-52233cfb3306" }, "data": { "id": "cus\_3fb1b8ab52690e9ff2ac48920f892828", "delinquent": false, "discount": null, "name": "John Doe", "default\_payment\_method": "card\_5f05364d29908e6a2e73ff7405f9b2cc", "description": "", "email": "john.doe@rapyd.net", "phone\_number": "", "invoice\_prefix": "", "addresses": \[\], "payment\_methods": { "data": \[\ {\ "id": "card\_5f05364d29908e6a2e73ff7405f9b2cc",\ "type": "is\_visa\_card",\ "category": "card",\ "metadata": null,\ "image": "https://iconslib.rapyd.net/checkout/is\_visa\_card.png",\ "webhook\_url": "",\ "supporting\_documentation": "",\ "next\_action": "not\_applicable",\ "name": "John Doe",\ "last4": "1111",\ "acs\_check": "unchecked",\ "cvv\_check": "unchecked",\ "bin\_details": {\ "type": "DEBIT",\ "brand": "VISA",\ "level": "CREDIT",\ "issuer": "JPMORGAN CHASE BANK, N.A.",\ "country": "US",\ "bin\_number": "411111"\ },\ "expiration\_year": "25",\ "expiration\_month": "05",\ "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467",\ "redirect\_url": "https://sandboxcheckout.rapyd.net/3ds-payment?token=payment\_353babc4043ae66f18638b4b864d7c5a"\ }\ \], "has\_more": false, "total\_count": 1, "url": "/v1/customers/cus\_3fb1b8ab52690e9ff2ac48920f892828/payment\_methods" }, "subscriptions": null, "created\_at": 1720694094, "metadata": {}, "business\_vat\_id": "", "ewallet": "", "network\_reference\_id": 740357, "complete\_payment\_url": "https://www.example21367.com/complete", "error\_payment\_url": "https://www.example21367.com/error" } } * Create Customer with address * curl -X post https://sandboxapi.rapyd.net/v1/customers -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "name": "John Doe", "email": "johndoe@rapyd.net", "payment\_method": { "type": "sg\_fast\_bank", "fields": {} }, "addresses": \[\ {\ "name": "John Doe",\ "line\_1": "123 Main Street",\ "city": "Anytown",\ "state": "NY",\ "country": "US",\ "zip": "12345",\ "phone\_number": "+19175551234"\ }\ \] } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "f3c96aaa-8fec-41df-b505-bd7b772298cd" }, "data": { "id": "cus\_545b717371f27b2493d7e318ea7a8879", "delinquent": false, "discount": null, "name": "John Doe", "default\_payment\_method": "other\_36790caf5472201f4989eff0cb7d3a45", "description": "", "email": "johndoe@rapyd.net", "phone\_number": "", "invoice\_prefix": "", "addresses": \[\ {\ "id": "address\_b3b76dac12842a954f3c18110d2144d2",\ "name": "John Doe",\ "line\_1": "123 Main Street",\ "line\_2": "",\ "line\_3": "",\ "city": "Anytown",\ "state": "NY",\ "country": "US",\ "zip": "12345",\ "phone\_number": "+19175551234",\ "metadata": {},\ "canton": "",\ "district": "",\ "created\_at": 1668593933\ }\ \], "payment\_methods": { "data": \[\ {\ "id": "other\_36790caf5472201f4989eff0cb7d3a45",\ "type": "sg\_fast\_bank",\ "category": "bank\_transfer",\ "metadata": {},\ "image": "https://iconslib.rapyd.net/checkout/sg\_fast\_bank.png",\ "webhook\_url": "",\ "supporting\_documentation": "",\ "next\_action": "not\_applicable",\ "bic\_swift": "",\ "account\_last4": ""\ }\ \], "has\_more": false, "total\_count": 1, "url": "/v1/customers/cus\_545b717371f27b2493d7e318ea7a8879/payment\_methods" }, "subscriptions": null, "created\_at": 1668593933, "metadata": {}, "business\_vat\_id": "", "ewallet": "" } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](customer.html) * [Next](create-customer.html#idp332118) --- # Create Card Token [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Card Token](card-token.html) * Create Card Token * [Prev](card-token.html) * [Next](create-card-token.html#idp343226) ##### Create Card Token Create a hosted page for a customer to save card details and manage cards. Prerequisites * [Create Customer](create-customer.html "Create Customer") ### Note * Certain card operations on the hosted page require 3DS authentication by the cardholder. To simulate the cardholder's action in the sandbox, see [Simulating 3DS Authentication](simulating-3ds-authentication.html "Simulating 3DS Authentication") . * Before you run this method, verify that the payment method can be tokenized. See [List Payment Methods by Country](list-payment-methods-by-country.html "List Payment Methods by Country") . Rapyd sends you webhooks for the following customer actions: * Add a card. * [Customer Payment Method Created Webhook](customer-payment-method-created-webhook.html "Customer Payment Method Created Webhook") - Contains the same information as the response to [Add Payment Method to Customer](add-payment-method-to-customer.html "Add Payment Method to Customer") . * [Customer Updated Webhook](customer-updated-webhook.html "Customer Updated Webhook") - Contains the same information as the response to [Update Customer](update-customer.html "Update Customer") . * [Payment Succeeded Webhook](payment-succeeded-webhook.html "Payment Succeeded Webhook") (card verification) - Contains the same information as the response to [Create Payment](create-payment.html "Create Payment") . * Change the default card. * [Customer Updated Webhook](customer-updated-webhook.html "Customer Updated Webhook") - Contains the same information as the response to [Update Customer](update-customer.html "Update Customer") . * Delete a card. * [Payment Method Canceled Webhook](payment-method-canceled-webhook.html "Payment Method Canceled Webhook") [###### Parameters](#idp343230_body) [###### Request Header Parameters](#idp343232_body) [###### Request Body Parameters](#idp343292_body) [###### Response Parameters](#idp343432_body) * /v1/hosted/collect/card * Create Card Token * curl -X post https://sandboxapi.rapyd.net/v1/hosted/collect/card -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "country": "gb", "customer": "cus\_42b8ceab15da92c5d4dd746b41b12334", "card\_fields": { "recurrence\_type": "unscheduled" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "1ac79b55-b445-44ae-bcb6-ad2db4388d6d" }, "data": { "id": "hp\_card\_2462697b00c0419f1446e74f8cc8633f", "status": "NEW", "cancel\_url": "https://www.rapyd.net", "complete\_url": "https://www.rapyd.net", "language": null, "merchant\_color": "324cff", "merchant\_logo": "https://qaiconslib.rapyd.net/merchant-logos/ohpc\_61a8582e4690e8fe5345b10e5d7321ca/sbox.jpg", "merchant\_website": "https://www.rapyd.net", "merchant\_customer\_support": { "url": "https://www.rapyd.net", "email": "rapyd@rapyd.net", "phone\_number": "524-444444444" }, "merchant\_alias": "rap", "page\_expiration": 1706091974, "redirect\_url": "https://sandboxhosted.rapyd.net/collect/card?token=hp\_card\_2462697b00c0419f1446e74f8cc8633f", "category": "card", "country": "GB", "currency": "GBP", "customer": "cus\_42b8ceab15da92c5d4dd746b41b12334", "payment\_method\_type": null, "payment\_params": { "complete\_payment\_url": null, "error\_payment\_url": null }, "billing\_address\_collect": false, "customer\_card\_payment\_methods": null, "card\_fields": { "recurrence\_type": "unscheduled" } } } ###### Related Information * [Save Card Details With Rapyd Checkout](save-card-details-with-rapyd-checkout.html "Save Card Details With Rapyd Checkout") * [Card Numbers for Testing](card-numbers-for-testing.html "Card Numbers for Testing") In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](card-token.html) * [Next](create-card-token.html#idp343226) --- # Update Customer [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Customer](customer.html) * Update Customer * [Prev](create-customer.html#idp332118) * [Next](update-customer.html#idp332854) ##### Update Customer Change one or more fields in a customer profile. To clear a field, set it to an empty string. This method triggers the [Customer Created Webhook](customer-created-webhook.html "Customer Created Webhook") . This webhook contains the same information as the response. [###### Parameters](#idp332858_body) [###### Request Path Parameters](#idp332860_body) [###### Request Header Parameters](#idp332873_body) [###### Request Body Parameters](#idp332933_body) * * addresses * Array of 'address' objects associated with this customer. For details of the 'address' object, see [Create Address](create-address.html "Create Address") . * * business\_vat\_id * The tax ID number of the customer. * * coupon * The ID of a coupon that is assigned to this customer. * * default\_payment\_method * The payment method that is used when the transaction does not specify a payment method. String starting with **card\_** or **other\_**. * * description * A text description of the customer. * * email * Customer's email address. * * ewallet * ID of the wallet that is linked to the customer. String starting with **ewallet\_**. * * invoice\_prefix * A custom string that is prefixed to all invoices for this customer. * * name * The name of the individual customer or the business name. * * phone\_number * Customer's primary phone number in E.164 format. [###### Response Parameters](#idp333087_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string customerId = "cus\_d3ed65d5091a8398cc3651bcedec1201"; var requestObj = new { default\_payment\_method = "card\_0ef22c3b9fa5991a4da957d3dcee2e7b" }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", $"/v1/customers/{customerId}", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { default\_payment\_method: 'card\_0ef22c3b9fa5991a4da957d3dcee2e7b' }; const result = await makeRequest( 'POST', '/v1/customers/cus\_d3ed65d5091a8398cc3651bcedec1201', body ); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ "default\_payment\_method"=> "card\_0ef22c3b9fa5991a4da957d3dcee2e7b"\ \]; try { $object = make\_request('post', "/v1/customers/cus\_d3ed65d5091a8398cc3651bcedec1201", $body); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request customer\_data = { "default\_payment\_method": "card\_0ef22c3b9fa5991a4da957d3dcee2e7b", } result = make\_request(method='post', path='/v1/customers/cus\_d3ed65d5091a8398cc3651bcedec1201', body=customer\_data) pprint(result) * /v1/customers/:customer * Add Default Payment Method * curl -X post https://sandboxapi.rapyd.net/v1/customers/cus\_d3ed65d5091a8398cc3651bcedec1201 -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "default\_payment\_method": "card\_0ef22c3b9fa5991a4da957d3dcee2e7b" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "86591aab-d648-4dd2-8e38-8b06c0b6f8c3" }, "data": { "id": "cus\_d3ed65d5091a8398cc3651bcedec1201", "delinquent": false, "discount": null, "name": "John Doe", "default\_payment\_method": "card\_0ef22c3b9fa5991a4da957d3dcee2e7b", "description": "", "email": "johndoe1@rapyd.net", "phone\_number": "+14155559983", "invoice\_prefix": "JD-", "addresses": \[\], "payment\_methods": { "data": \[\ {\ "id": "card\_0ef22c3b9fa5991a4da957d3dcee2e7b",\ "type": "us\_visa\_card",\ "category": "card",\ "metadata": {},\ "image": "https://iconslib.rapyd.net/checkout/us\_visa\_card.png",\ "webhook\_url": "",\ "supporting\_documentation": "",\ "next\_action": "3d\_verification",\ "name": "John Doe",\ "last4": "1111",\ "acs\_check": "unchecked",\ "cvv\_check": "unchecked",\ "bin\_details": {\ "type": null,\ "brand": null,\ "country": null,\ "bin\_number": "411111"\ },\ "expiration\_year": "25",\ "expiration\_month": "12",\ "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467"\ },\ {\ "id": "other\_bc428c38988a5d5aa5a09b79f32b2b15",\ "type": "us\_ach\_bank",\ "category": "bank\_transfer",\ "metadata": {\ "merchant\_defined": true\ },\ "image": "https://iconslib.rapyd.net/checkout/us\_ach\_bank.png",\ "webhook\_url": "",\ "supporting\_documentation": "",\ "next\_action": "not\_applicable",\ "last\_name": "Doe",\ "first\_name": "John",\ "company\_name": "Acme",\ "account\_number": "retetert-345345345345-ertretretert-34534534t",\ "routing\_number": "2345345345345345",\ "payment\_purpose": "goods",\ "proof\_of\_authorization": false\ }\ \], "has\_more": false, "total\_count": 2, "url": "/v1/customers/cus\_d3ed65d5091a8398cc3651bcedec1201/payment\_methods" }, "subscriptions": null, "created\_at": 1634217004, "metadata": { "merchant\_defined": true }, "business\_vat\_id": "123456789", "ewallet": "ewallet\_0430df85c650a9a0a87f677d281b3f59" } } * Add Discount * curl -X post https://sandboxapi.rapyd.net/v1/customers/cus\_c62e8561f1f9217676819dce60accc08 -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "coupon": "coupon\_4ab30530e8a7352ffe715deecfab57b9" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "776819ef-0fb4-4e83-aa08-e159569c050b" }, "data": { "id": "cus\_c62e8561f1f9217676819dce60accc08", "delinquent": false, "discount": { "id": "dis\_d41d8cd98f00b204e9800998ecf8427e", "coupon": { "id": "coupon\_4ab30530e8a7352ffe715deecfab57b9", "amount\_off": 2, "created": 1646825743, "currency": "USD", "duration": "forever", "duration\_in\_months": 0, "max\_redemptions": 1, "metadata": { "merchant\_defined": true }, "percent\_off": 0, "redeem\_by": 0, "times\_redeemed": 0, "discount\_valid\_until": 0, "discount\_validity\_in\_months": 0, "discount\_duration\_in\_uses": 0, "description": "", "valid": true }, "end": -1, "start": 1646834885, "subscription": "", "number\_of\_uses": 0, "valid": true }, "name": "John Doe", "default\_payment\_method": "", "description": "", "email": "john\_doe@rapyd.net", "phone\_number": "", "invoice\_prefix": "", "addresses": \[\], "payment\_methods": { "data": \[\ {\ "id": "other\_83f8ce8cd8cfb19bb61758b224c55cfe",\ "type": "us\_psc\_cash",\ "category": "cash",\ "metadata": {},\ "image": "https://iconslib.rapyd.net/checkout/us\_psc\_cash.png",\ "webhook\_url": "",\ "supporting\_documentation": "",\ "next\_action": "not\_applicable"\ }\ \], "has\_more": false, "total\_count": 1, "url": "/v1/customers/cus\_c62e8561f1f9217676819dce60accc08/payment\_methods" }, "subscriptions": null, "created\_at": 1616316203, "metadata": {}, "business\_vat\_id": "", "ewallet": "" } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](create-customer.html#idp332118) * [Next](update-customer.html#idp332854) --- # Create Product [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Product](product.html) * Create Product * [Prev](product.html) * [Next](update-product.html) ###### Create Product Create goods or services. If the product is goods, use [Create SKU](create-sku.html "Create SKU") to add a SKU to the product. This method triggers the **Product Created** webhook. This webhook contains the same information as the response. [###### Parameters](#idp298708_body) [###### Request Header Parameters](#idp298710_body) [###### Request Body Parameters](#idp298770_body) * * active * Indicates whether the product is currently available for purchase. true * * attributes * Array of up to 5 alphanumeric strings defined by the merchant. Each string defines the key in a key-value pair in the `attributes` object in the corresponding `sku` objects. * * description * Full text description of the product. * * id * Unique string for identification of the product. Legal input includes all the English alphanumeric characters and the underscore (\_) character. If the merchant does not define an ID, Rapyd generates it with a string that starts with **product\_**. * * name * The name of the product or service that is displayed to the customer. * * shippable * Indicates whether the product is physically shipped to the customer. Relevant when `type` is **goods**. false * * statement\_descriptor * A text description that appears in the customer's invoice. Limited to 22 characters. Relevant when `type` is **service**. * * type * One of the following: * **services** * **goods** * * unit\_label * A label that represents units of this product on customers’ invoices, such as views or downloads. Relevant when `type` is **service**. [###### Response Parameters](#UUID-cc8b16b4-874b-b2a9-08c8-aa294f787718_section-idm13409580712870_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var metadata = new { merchant\_defined = true }; var attributes = new string\[\] { "location", "size" }; var requestObj = new { id = "", name = "Monthly parking", type = "services", active = true, attributes, description = "Monthly parking - covered area, compact car", metadata, shippable = false, statement\_descriptor = "", unit\_label = "", }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/products", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { id: '', name: 'Monthly parking', type: 'services', active: true, attributes: \['location', 'size'\], description: 'Monthly parking - covered area, compact car', metadata: { merchant\_defined: true }, shippable: false, statement\_descriptor: '', unit\_label: '' }; const result = await makeRequest('POST', '/v1/products', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ "id" => "",\ "name" => "Monthly parking",\ "type" => "services",\ "active" => true,\ "attributes" => \[\ "location",\ "size"\ \],\ "description" => "Monthly parking - covered area, compact car",\ "shippable" => false,\ "statement\_descriptor" => "",\ "unit\_label" => ""\ \]; try { $object = make\_request('post', '/v1/products', $body); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * product = { "id": "", "name": "Monthly parking", "type": "services", "active": True, "attributes": \[\ "location",\ "size"\ \], "description": "Monthly parking - covered area, compact car", "metadata": { "merchant\_defined": True }, "shippable": False, "statement\_descriptor": "monthly\_parking", "unit\_label": "", } result = make\_request(method='post', path='/v1/products', body=product) pprint(result) * /v1/products * Create Services * curl -X post https://sandboxapi.rapyd.net/v1/products -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "id": "", "name": "Monthly parking", "type": "services", "active": true, "attributes": \[\ "location",\ "size"\ \], "description": "Monthly parking - covered area, compact car", "metadata": { "merchant\_defined": true }, "shippable": false, "statement\_descriptor": "", "unit\_label": "" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "62541e52-3097-4967-81c9-883fe0531685" }, "data": { "id": "product\_ab9599d248f6d4d4311148aea68e20d0", "active": true, "attributes": \[\ "location",\ "size"\ \], "created\_at": 1592299027, "description": "Monthly parking - covered area, compact car", "metadata": { "merchant\_defined": true }, "name": "Monthly parking", "package\_dimensions": { "height": 0, "length": 0, "weight": 0, "width": 0 }, "shippable": false, "skus": \[\], "statement\_descriptor": "", "type": "services", "unit\_label": "", "updated\_at": 1592299027 } } * Create Goods * curl -X post https://sandboxapi.rapyd.net/v1/products -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "id": "", "name": "Gamer's Chair", "type": "goods", "active": true, "attributes": \[\ "color",\ "arm rest"\ \], "description": "The ultimate in comfort for the dedicated gamer.", "metadata": { "merchant\_defined": true }, "package\_dimensions": { "height": 10, "length": 20, "weight": 30, "width": 40 }, "shippable": true, "statement\_descriptor": "", "unit\_label": "" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "7e25c2bf-92d7-42ac-88aa-5b56c218a5ef" }, "data": { "id": "product\_0d9dc6be69c769560fe913f3b086d8ca", "active": true, "attributes": \[\ "arm rest",\ "color"\ \], "created\_at": 1592299157, "description": "The ultimate in comfort for the dedicated gamer.", "metadata": { "merchant\_defined": true }, "name": "Gamer's Chair", "package\_dimensions": { "height": 10, "length": 20, "weight": 30, "width": 40 }, "shippable": true, "skus": \[\], "statement\_descriptor": "", "type": "goods", "unit\_label": "", "updated\_at": 1592299157 } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](product.html) * [Next](update-product.html) --- # Subscription [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * Subscription * [Prev](plan-errors.html) * [Next](create-subscription.html) ##### Subscription Periodic collection transactions without further input from the client or customer. A payment subscription contains one or more subscription items that are billed as defined in the subscription. It is relevant to products that are defined as services. After the subscription is created, you can add or remove subscription items as required. ### Note * A customer can have more than one subscription. * Subscriptions support card and bank redirect payment method types. * To create a subscription with a fixed number of billing periods, such as for an installment sale, you must use [Update Subscription](update-subscription.html "Update Subscription") during the last billing period and set `cancel_at_period_end` to **true**. **Prerequisites** * A subscription requires one or more active plans. See [Create Plan](create-plan.html "Create Plan") . * Each plan requires a product of type **service**. See [Create Product](create-product.html "Create Product") . Subscription Methods * [Create Subscription](create-subscription.html "Create Subscription") * [Update Subscription](update-subscription.html "Update Subscription") * [List Subscriptions](list-subscriptions.html "List Subscriptions") * [Retrieve Subscription](retrieve-subscription.html "Retrieve Subscription") * [Cancel Subscription](cancel-subscription.html "Cancel Subscription") * [Delete Discount from Subscription](delete-discount-from-subscription.html "Delete Discount from Subscription") Subscription Webhooks * [New Cycle Started Webhook](new-cycle-started-webhook.html "New Cycle Started Webhook") * [Subscription Canceled Webhook](subscription-canceled-webhook.html "Subscription Canceled Webhook") * [Subscription Past Due Webhook](subscription-past-due-webhook.html "Subscription Past Due Webhook") * [Subscription Unpaid Webhook](subscription-unpaid-webhook.html "Subscription Unpaid Webhook") * [Subscription Updated Webhook](subscription-updated-webhook.html "Subscription Updated Webhook") * [Trial Nearing End Webhook](trial-nearing-end-webhook.html "Trial Nearing End Webhook") Subscription Error Messages * [Subscription Errors](subscription-errors.html "Subscription Errors") In this section: Search results -------------- No results found * [Prev](plan-errors.html) * [Next](create-subscription.html) --- # Mass Payouts [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * Mass Payouts * [Prev](closing-a-virtual-account.html#idp262032) * [Next](mass-payouts.html#idp262093) ### Mass Payouts A mass payout is a single operation that creates multiple payouts. You can create a mass payout using the Client Portal and view a report of the payout results. Uses for mass payouts include: * Employee salaries * Pension transfers You must have Owner or Administrator privileges to manage mass payouts. Mass Payout Management en/understanding-mass-payouts.html Understanding Mass Payouts Learn about creating a mass payout. en/downloading-a-sample-mass-payout-file.html Downloading a Sample Mass Payout File Download a sample file for a mass payout. en/creating-a-mass-payout-file.html Creating a Mass Payout File Create your mass payout file based on the sample file. en/uploading-csv-files-for-mass-payouts.html Uploading CSV Files for Mass Payouts Upload your mass payout file to the Client Portal. Mass Payout Reports en/viewing-mass-payout-reports.html Viewing Mass Payout Reports View a list of mass payout reports. en/previewing-details-of-a-mass-payout-report.html Previewing Details of a Mass Payout Report Preview a list of details of a mass payout report. en/downloading-a-mass-payout-report.html Downloading Mass Payout Reports Download your mass payout report. en/downloading-a-summary-of-mass-payout-reports.html Download Summary of Mass Payout Reports Download a summary report of the mass payout reports. In this section: Search results -------------- No results found * [Prev](closing-a-virtual-account.html#idp262032) * [Next](mass-payouts.html#idp262093) --- # Rapyd Protect Overview [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * Rapyd Protect Overview * [Prev](downloading-a-summary-of-mass-payout-reports.html#idp262565) * [Next](rapyd-protect-overview.html#idp262620) ### Rapyd Protect Overview Fraud management designed for cards and local payment methods. Rapyd Protect uses AI modeling, unique data sources, and our proprietary rules engine to identify high-risk transactions across bank transfers, cards, and ewallets. Rapyd Protect requires no additional coding or integration and is already built into our platforms and network. It is a free service available to all of our clients. [#### Rapyd Protect Product Features](#idp262620_body) **Machine Learning** - Benefit from Rapyd’s best in class models informed by unique data sets fine tuned to identify new fraud trends and keep your business safe. **Rule Building Engine** - User friendly drag and drop rule builder for additional protection from fraudulent transactions. Users can create rules based on IP addresses, card types, countries, activate 3D Secure, and more. **Manual Reviews** - Set up manual reviews for high risk transactions such as large purchases, specific countries, or for special orders. **Velocity Engine** - Prevent fraudulent transactions by monitoring purchase frequency and usage patterns for numerous payment methods. **Lists** - Access Rapyd’s rich data set listing known fraudsters, dubious ip addresses, blocked countries, high risk bin numbers and ranges. **Reports** - Create comprehensive transaction reports, plus access an extensive management system for alerts, rules and reviews. Understanding Rapyd Protect Fraud Rules en/rapyd-protect-fraud-rules.html Rapyd Protect Fraud Rules Learn Rapyd Protect rules. en/creating-a-fraud-rule.html Creating a Fraud Rule How to add a rule. en/modifying-a-fraud-rule.html Modifying a Fraud Rule Edit a rule. Managing Transactions en/view-all-transactions-under-review.html View All Transactions Under Review See all transactions flagged for review. en/viewing-a-transaction-under-review.html Viewing a Transaction Under Review View a single transaction under review. en/viewing-a-triggered-fraud-rule.html Viewing a Triggered Fraud Rule See what fraud rules are triggered. en/approving-a-transaction.html Approving a Transaction Approve a transaction under review. Blocking Transactions en/declining-a-transaction.html Declining a Transaction Decline a transaction under review. en/view-all-blocked-transactions.html View Blocked Transactions See a list of blocked transactions. en/view-a-blocked-transaction.html View a Blocked Transaction View a single blocked transaction. In this section: Search results -------------- No results found * [Prev](downloading-a-summary-of-mass-payout-reports.html#idp262565) * [Next](rapyd-protect-overview.html#idp262620) --- # Payment Features [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Collect](rapyd-collect.html) * Payment Features * [Prev](generating-mass-payments.html#idp223184) * [Next](payment-features.html#idp223194) #### Payment Features Integrate Rapyd Payment Features into your Business Process Flows. Payment Features direct the payment flow to meet your customer's needs. No matter your business model, Rapyd makes it easy to set up different payment flows to create better local experiences for your customers. Collect Features en/two-step-payment.html Two-Step Payment Authorize a card and capture funds after the order is completed. en/payment-with-fx.html Payment With FX Enable customers to pay in their local currency. en/split-payment-by-amount.html Split Payment by Amount Split a single payment amount between multiple accounts. en/group-payments.html Group Payments Enable up to 10 customers to combine their individual payments for a single purchase transaction, or group payment. en/managing-escrow.html Escrow Hold any payment method in escrow for later release. en/partial-payments.html Partial Payments Customers can pay for purchases using more than one payment method such as cash and a bank transfer. In this section: Search results -------------- No results found * [Prev](generating-mass-payments.html#idp223184) * [Next](payment-features.html#idp223194) --- # Integrate Payment Methods [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Collect](rapyd-collect.html) * Integrate Payment Methods * [Prev](hosted-save-card-details-page.html#idp218172) * [Next](integrate-payment-methods.html#idp218394) #### Integrate Payment Methods Give customers a better payment experience by offering their preferred local payment methods. [##### Accept More Payment Methods With Rapyd Collect](#idp218394_body) Give customers a better payment experience by offering their preferred local payment methods. Add more payment options to effectively increase conversion rate and your average cart size. Explore each payment method to learn how you can improve your customer checkout experience: Payment Categories Payment Categories will help you determine the specific payment method types. en/card-payments.html Card Payments Accept card payments, add 3DS verification security, and securely store payment info for return customers. en/bank-direct-debit.html Bank Payments Accept ACH, BACS, and other transfers, including bank redirect payment methods online. en/cash-payments.html Cash Payments Online Let your eCommerce customers pay with cash 2M+ Convenience Stores. en/rapyd-checkout-overview.html Rapyd Checkout Start accepting all of these payment methods today with Rapyd Checkout. en/card-to-card-payments.html Card to Card Payments Send a payment from one card to another. en/ewallets.html eWallet Payments Collect payments with popular and secure digital local eWallets. [##### Payments Workflow](#idp218469_body) Different payment methods are accepted in each country. Rapyd Collect allows you to choose what country and payment method to accept for your customers. ###### Step 1: Find Payment Methods and Required Fields ![find-payment-method.jpg](image/16763ca31017e2.jpg) 1. Use [List Payment Methods by Country](list-payment-methods-by-country.html "List Payment Methods by Country") to view the available payment methods in a given country. **Note**: Use [List Countries](list-countries.html "List Countries") for a full list of available countries. 2. Rapyd processes the request and returns with payment methods for the specific country. 3. Use [Get Payment Method Required Fields](get-payment-method-required-fields.html "Get Payment Method Required Fields") to find required fields for a payment method. 4. Rapyd processes request and returns with payment method required fields. ###### Step 2: Process Customer's Payment Method ![process-customers-payment.jpg](image/16763ca310c653.jpg) 1. Customer selects payment method and confirms payment. 2. You request Rapyd to process the payment method with [Create Payment](create-payment.html "Create Payment") Request. 3. Rapyd processes the payment and sends the response and webhook. 4. You [receive Payment Confirmation — Webhook](payment-completed-webhook.html "Payment Completed Webhook") and notify the customer. In this section: Search results -------------- No results found * [Prev](hosted-save-card-details-page.html#idp218172) * [Next](integrate-payment-methods.html#idp218394) --- # Create Subscription by Hosted Page [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription - Hosted Page](subscription---hosted-page.html) * Create Subscription by Hosted Page * [Prev](subscription---hosted-page.html) * [Next](subscription-item.html) ###### Create Subscription by Hosted Page Create a subscription using a hosted page. Relevant to card payments. ### Note Deprecated endpoint - post /v1/checkout/subscription Rapyd continues to support the deprecated endpoint. No sunset date has been set. [###### Parameters](#idp306277_body) [###### Request Header Parameters](#idp306279_body) [###### Request Body Parameters](#idp306339_body) [###### Response Parameters](#idp306676_body) * /v1/checkout/subscriptions * Create Subscription by Hosted Page * curl -X post https://sandboxapi.rapyd.net/v1/checkout/subscriptions -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "customer": "cus\_d3ed65d5091a8398cc3651bcedec1201", "merchant\_reference\_id": "acct\_111197", "country": "us", "language": "en", "billing": "pay\_automatically", "simultaneous\_invoice": true, "cancel\_at\_period\_end": true, "coupon": "", "payment\_fees": { "fx\_fee": { "calc\_type": "net", "fee\_type": "percentage", "value": 2.5 } }, "payment\_method\_": "card\_156da7de485275ad0bae798b7cb8fea1", "subscription\_items": \[\ {\ "plan": "plan\_27921a1d4ebeb2db2e6aadf69a0094b1",\ "quantity": 1\ }\ \], "metadata": { "merchant\_defined": true }, "tax\_percent": 10.5, "complete\_payment\_url": "https://example.com/thankyou", "error\_payment\_url": "https://example.com/error", "page\_expiration": 1692276710, "merchant\_main\_button": "pay" }' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "f723ad19-1c7c-4f1f-be73-5dca009a54bc" }, "data": { "id": "hp\_sub\_26db4525d0de8d999715b649a615dd3f", "status": "NEW", "cancel\_url": "https://rapyd.net", "complete\_url": "https://rapyd.net", "language": "en", "merchant\_color": "323fff", "merchant\_logo": "", "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Doc Team", "merchant\_terms": "", "merchant\_privacy\_policy": "", "page\_expiration": 1692276710, "redirect\_url": "https://sandboxcheckout.rapyd.net/subscription?token=hp\_sub\_26db4525d0de8d999715b649a615dd3f", "merchant\_main\_button": "pay", "subscription\_items": \[\ {\ "id": "",\ "plan": {\ "id": "8993ac69-bd12-4cf2-aa8f-019081441303",\ "tiers": \[\],\ "token": "plan\_27921a1d4ebeb2db2e6aadf69a0094b1",\ "amount": 5,\ "product": null,\ "interval": "month",\ "metadata": {},\ "nickname": "Basic",\ "created\_at": 1669022872,\ "deleted\_at": 0,\ "tiers\_mode": "",\ "usage\_type": "licensed",\ "product\_name": "Music Streaming",\ "product\_type": "services",\ "currency\_code": "USD",\ "product\_token": "product\_8a9a3932967cb7f2caf91d3cc07be5c8",\ "billing\_scheme": "per\_unit",\ "interval\_count": 1,\ "aggregate\_usage": "sum",\ "organization\_id": "",\ "transform\_usage": {},\ "product\_is\_active": 1,\ "trial\_period\_days": 0,\ "transform\_usage\_round": "up",\ "transform\_usage\_divide\_by": 1\ },\ "token": "",\ "created": 0,\ "deleted": false,\ "prorate": true,\ "quantity": 1,\ "plan\_token": "plan\_27921a1d4ebeb2db2e6aadf69a0094b1",\ "clear\_usage": false,\ "proration\_date": 0\ }\ \], "customer": "cus\_d3ed65d5091a8398cc3651bcedec1201", "customer\_payment\_methods": \[\], "bank\_redirect\_customer\_payment\_methods": \[\], "country": "US", "trial\_end": null, "trial\_from\_plan": false, "trial\_period\_days": 0, "tax\_percent": 10.5, "billing\_cycle\_anchor": 0, "billing": "pay\_automatically", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "payment": { "amount": null, "original\_amount": 0, "is\_partial": false, "currency\_code": "", "country\_code": "", "status": "", "description": "", "merchant\_reference\_id": "", "customer\_token": "", "payment\_method": "", "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "", "transaction\_id": "", "metadata": null, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": "", "payment\_method\_type\_category": "", "fx\_rate": "", "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "", "mid": "", "next\_action": "not\_applicable" }, "metadata": { "merchant\_defined": true }, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "payment\_method\_type": "", "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "payment\_method\_type\_categories": null } } * Create Subscription by Hosted Page with Trial Period * curl -X post https://sandboxapi.rapyd.net/v1/checkout/subscriptions -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "customer": "cus\_9628d1fdd40158feec710fb36db83154", "country": "us", "billing": "pay\_automatically", "cancel\_at\_period\_end": true, "coupon": "", "payment\_method": "card\_156da7de485275ad0bae798b7cb8fea1", "subscription\_items": \[\ {\ "plan": "plan\_243ae97f27d388df5a718cbc35688f75",\ "quantity": 1\ }\ \], "metadata": { "merchant\_defined": true }, "tax\_percent": 10.5, "complete\_payment\_url": "https://example.com/thankyou", "error\_payment\_url": "https://example.com/error", "trial\_end": 1649980020, "trial\_from\_plan": false } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "6563bf28-fa70-4536-9e39-0dbbe3a2ac4f" }, "data": { "token": "hp\_sub\_2140d3eb871e9427a618790c653c881d", "status": "NEW", "cancel\_url": "https://www.acmemusic123.net/cancel", "complete\_url": "https://www.acmemusic123.net", "language": "", "merchant\_color": "", "merchant\_logo": "", "merchant\_website": "https://www.rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Doc Team", "merchant\_terms": "", "merchant\_privacy\_policy": "", "page\_expiration": 0, "redirect\_url": "https://sandboxhosted.rapyd.net/subscription?token=hp\_sub\_2140d3eb871e9427a618790c653c881d", "region": null, "geo\_country": null, "merchant\_main\_button": "start\_trial", "subscription\_items": \[\ {\ "id": "",\ "plan": {\ "id": "de9a5bfc-ec56-4584-896e-83fd5fefb1ea",\ "tiers": \[\],\ "token": "plan\_243ae97f27d388df5a718cbc35688f75",\ "amount": 1,\ "product": null,\ "interval": "month",\ "metadata": {},\ "nickname": "Basic",\ "created\_at": 1648982677,\ "deleted\_at": 0,\ "tiers\_mode": "",\ "usage\_type": "licensed",\ "product\_name": "Acme music stream",\ "product\_type": "services",\ "currency\_code": "USD",\ "product\_token": "product\_ca7685a10233e9bc0d82669e6a6c83d3",\ "billing\_scheme": "per\_unit",\ "interval\_count": 1,\ "aggregate\_usage": "sum",\ "organization\_id": "",\ "transform\_usage": {},\ "product\_is\_active": 1,\ "trial\_period\_days": 0,\ "transform\_usage\_round": "up",\ "transform\_usage\_divide\_by": 1\ },\ "token": "",\ "created": 0,\ "deleted": false,\ "prorate": true,\ "quantity": 1,\ "plan\_token": "plan\_243ae97f27d388df5a718cbc35688f75",\ "clear\_usage": false,\ "proration\_date": 0\ }\ \], "customer": "cus\_9628d1fdd40158feec710fb36db83154", "country": "US", "trial\_end": 1649980020, "trial\_from\_plan": false, "trial\_period\_days": 0, "tax\_percent": 10.5, "billing\_cycle\_anchor": 0, "billing\_address\_collect": false, "billing": "pay\_automatically", "cancel\_checkout\_url": "https://www.acmemusic123.net/cancel", "complete\_checkout\_url": "https://www.acmemusic123.net/cancel", "payment": null, "metadata": { "merchant\_defined": true } } } * Create Subscription by Hosted Page with Coupon * curl -X post https://sandboxapi.rapyd.net/v1/checkout/subscriptions -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "subscription\_items": \[\ {\ "plan": "plan\_9d7bc847f1ad3fe36f389273f5e22b56",\ "quantity": 1\ }\ \], "country": "US", "language": "EN", "customer": "cus\_49ea9673acfbe53fac114fbf4bd94be3", "coupon": "coupon\_da009d56dd6b7fdf4de28af673430a63", "billing": "pay\_automatically", "tax\_percent": 3, "enable\_retries": false, "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "e81feab0-7216-4ebe-b51e-d1bfad487a48" }, "data": { "id": "hp\_sub\_fc4ce3d974731b2305c333025a91bbaf", "status": "NEW", "cancel\_url": "https://www.rapyd.net", "complete\_url": "https://www.rapyd.net", "language": "en", "merchant\_color": "", "merchant\_logo": "", "merchant\_website": "https://www.rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Doc Team", "merchant\_terms": "", "merchant\_privacy\_policy": "", "page\_expiration": 1701595266, "redirect\_url": "https://sandboxcheckout.rapyd.net/subscription?token=hp\_sub\_fc4ce3d974731b2305c333025a91bbaf", "merchant\_main\_button": "subscribe", "subscription\_items": \[\ {\ "id": "",\ "plan": {\ "id": "09de6170-d76b-4450-8dcb-7833f5706384",\ "tiers": \[\],\ "token": "plan\_9d7bc847f1ad3fe36f389273f5e22b56",\ "amount": 100,\ "product": null,\ "interval": "day",\ "metadata": {\ "merchant\_defined": true\ },\ "nickname": "hcp",\ "created\_at": 1700384490,\ "deleted\_at": 0,\ "tiers\_mode": "",\ "usage\_type": "licensed",\ "product\_name": "HCP",\ "product\_type": "service",\ "currency\_code": "USD",\ "product\_token": "product\_eb45c8152bede037911d5e99ee4bc116",\ "billing\_scheme": "per\_unit",\ "interval\_count": 20,\ "aggregate\_usage": "sum",\ "organization\_id": "",\ "transform\_usage": {},\ "product\_is\_active": 1,\ "trial\_period\_days": 0,\ "transform\_usage\_round": "up",\ "transform\_usage\_divide\_by": 1\ },\ "token": "",\ "created": 0,\ "deleted": false,\ "prorate": true,\ "quantity": 1,\ "plan\_token": "plan\_9d7bc847f1ad3fe36f389273f5e22b56",\ "clear\_usage": false,\ "proration\_date": 0\ }\ \], "customer": "cus\_49ea9673acfbe53fac114fbf4bd94be3", "customer\_payment\_methods": \[\], "bank\_redirect\_customer\_payment\_methods": \[\], "country": "US", "trial\_from\_plan": false, "trial\_period\_days": 0, "tax\_percent": 3, "billing\_cycle\_anchor": 0, "billing": "pay\_automatically", "cancel\_checkout\_url": "https://www.rapyd.net", "complete\_checkout\_url": "https://www.rapyd.net", "payment": { "amount": null, "original\_amount": 0, "is\_partial": false, "currency\_code": "", "country\_code": "", "status": "", "description": "", "merchant\_reference\_id": "", "customer\_token": "", "payment\_method": "", "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "", "transaction\_id": "", "metadata": null, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": "", "payment\_method\_type\_category": "", "fx\_rate": "", "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "", "mid": "", "next\_action": "not\_applicable" }, "metadata": { "merchant\_defined": true }, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "payment\_method\_type": "", "coupon": "coupon\_da009d56dd6b7fdf4de28af673430a63", "enable\_retries": false } } ###### Related Information * [Hosted Subscription Checkout Page](hosted-subscription-checkout-page.html "Hosted Subscription Checkout Page") In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](subscription---hosted-page.html) * [Next](subscription-item.html) --- # Rapyd Disburse Features [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Disburse](rapyd-disburse.html) * Rapyd Disburse Features * [Prev](mass-payouts-overview.html#idp232405) * [Next](rapyd-disburse-features.html#idp232422) #### Rapyd Disburse Features Use Rapyd Disburse features to help your business run. | `Enterprise` [##### Integrate Rapyd Disburse Payout Features into Your Business Process Flows](#idp232422_body) No matter your business model, Rapyd makes it easy to set up different payout flows to create better local payout experiences for your sellers, workers, and suppliers. Payout Features en/payout-with-fx.html Payout With FX Create payouts with automatic currency conversion. en/reusing-beneficiary-or-sender.html Reusing Beneficiary/Sender Receive a token to represent your beneficiary and sender information for future payouts. en/validating-beneficiary-details.html Beneficiary Validations Validates the format of the beneficiary ID details for the payout method type. en/beneficiary-account-details.html Single/Mass Capture Beneficiary Details Page Gather beneficiary information using a Rapyd hosted page. In this section: Search results -------------- No results found * [Prev](mass-payouts-overview.html#idp232405) * [Next](rapyd-disburse-features.html#idp232422) --- # Rapyd Disburse [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * Rapyd Disburse * [Prev](mastercard.html#idp232171) * [Next](rapyd-disburse.html#idp232236) ### Rapyd Disburse Pay contractors, workers, suppliers, or any business anywhere in the world. | `Enterprise` [#### Make Local and Cross-Border Payouts Using Any Method](#idp232236_body) Rapyd Disburse is a global payout platform that enables reach into 100+ countries while incorporating a broad set of payout methods such as bank transfers, [eWallet](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_ewallet "eWallet") s, cards, and cash. Rapyd Disburse also supports both high velocity and high volume transaction types and a variety of payer and [beneficiary](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_beneficiary "Beneficiary") use cases such as one-to-one and mass-payouts in [B2B](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_business_to_business "Business-to-Business") , [B2C](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_business_to_consumer "Business-to-Consumer") , and P2P scenarios. The platform is available through an API integration as well as Client Portal. Built into the platform are fraud controls, all the necessary compliance framework, and the ability to handle [FX](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_fx "Foreign exchange") . ##### Popular Use Cases * Digital Goods and Marketplaces * Payout employees/gig economy workers' salaries. * Payout to suppliers (B2B) ### Payouts vs. Transfers Rapyd **payouts** or **disbursements** will always mean moving money from a Client Wallet or User Wallet to another 3rd party payment method type. A **transfer** will always mean moving money between [Rapyd Wallet](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_rapyd_wallet "Rapyd Wallet") accounts. Looking for info on transfers? Visit [Rapyd Wallets](rapyd-wallet.html "Rapyd Wallet") . Disburse Overview en/funding-your-client-wallet.html Funding Your Client Wallet Store your funds in a client wallet. en/payout-method-types.html Payout Methods Explore different methods to send payouts. en/mass-payouts-overview.html Mass Payouts Rapyd offers multiple options to create payouts. en/rapyd-disburse-features.html Disburse Features Use disburse features for your business process flows. en/canceling-a-payout.html Canceling a Payout Stop a payout to a beneficiary before it is completed. en/service-providers.html Service Providers Create payouts to service provider/utility companies. In this section: An electronic means of storing payment methods for use in commerce. The eWallet can be funded by a variety of different payment methods. Some ewallets receive or store funds. Also known as a [digital wallet](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_digital-wallet) . A person or business that receives funds from a [disburse](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_disburse) (payout) transaction. Commerce between business entities. Commerce between businesses and consumers. Conversion of money from one currency to another. In Rapyd, an electronic wallet for receiving, storing and disbursing funds. Search results -------------- No results found * [Prev](mastercard.html#idp232171) * [Next](rapyd-disburse.html#idp232236) --- # Plugins and Add-Ons [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Plugins](plugins.html) * Plugins and Add-Ons * [Prev](plugins.html#idp420350) * [Next](plugins-and-add-ons.html#idp420387) ### Plugins and Add-Ons Instantly connect hundreds of local payment methods to your shopping cart and drive increased conversions and customer loyalty. ### Note **eCommerce Plugins** Accept local payments on the world’s leading ecommerce platforms with no integration. [#### Get Started with Rapyd Payments](#idp420387_body) [Sign up](https://dashboard.rapyd.net/sign-up) With a Rapyd Client Portal Account, you can: * Activate and set up your plugin. * Access sandbox mode and test payments. * View supported payment methods. * View payment reports. * Invite team members. * Complete KYB steps to fully activate your account. ### Note **Rapyd Account Connection Limit** You can only connect one store per Rapyd Account. [#### Activate Your Plugin in Client Portal](#idp420409_body) Sign in to Client Portal and navigate to **Plugins**. ![64808fea0df97.gif](image/16763ca5adca8f.gif) The **Featured Plugins** page displays the supported plugins: * Each plugin window displays the plugin's status: **Activated** or **Deactivated**. * Initially, all plugins are deactivated. ![64808feedb85d.png](image/16763ca5ae71de.png) [#### The Plugin Menu](#idp420428_body) To view the plugin menu, click on the three dots icon that is on the top right corner of the plugin window. From the Plugin menu you can: * View plugin installation guide * View plugin keys * Search for countries and supported payment methods ![64808ff16a910.gif](image/16763ca5af16b5.gif) [#### Viewing Plugin Keys](#idp420441_body) To view the keys of a specific plugin: 1. Select your desired plugin with the blue switch on. ![6480900333d1e.gif](image/16763ca5b0ba53.gif) The plugin access key and secret key are displayed. 2. Click the fields to copy and paste both keys as indicated in the plugin instructions. ### Note * Some plugins do not require keys, and their menu does not display the **View Keys** option. * There are unique keys for sandbox and production environments. [#### Platforms and Countries](#idp420460_body) Please see each Rapyd Payments Plugin to learn which countries Rapyd supports today. * [Rapyd Payments Plugin for WooCommerce](rapyd-payments-app-for-woocommerce.html "Rapyd Payments App for WooCommerce") * [Rapyd Payments Plugin for Wix](rapyd-payments-plugin-for-wix.html "Rapyd Payments Plugin for Wix") * [Rapyd Payments Plugin for Shopify](rapyd-payments-plugin-for-shopify.html "Rapyd Payments Plugin for Shopify") * [Rapyd Payments Plugin for Magento](rapyd-payments-plugin-for-magento.html "Rapyd Payments Plugin for Magento") * [Rapyd Payments App for Ecwid](rapyd-payments-app-for-ecwid.html "Rapyd Payments App for Ecwid") * [Rapyd Payments Plugin for PrestaShop](rapyd-payments-plugin-for-prestashop.html "Rapyd Payments Plugin for PrestaShop") * [Rapyd Payments Plugin for OpenCart](rapyd-payments-plugin-for-opencart.html "Rapyd Payments Plugin for OpenCart") In this section: Search results -------------- No results found * [Prev](plugins.html#idp420350) * [Next](plugins-and-add-ons.html#idp420387) --- # Get FX Rate [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Resource Methods](resource-methods.html) * [Localization Methods](localization-methods.html) * Get FX Rate * [Prev](list-currencies.html#idp419206) * [Next](get-fx-rate.html#idp419354) ##### Get FX Rate Retrieve a foreign exchange rate for conversion of currencies in payments and payouts. The FX rate returned reflects the rate at that point in time. The FX rate may vary, depending on the time and the transaction details. The rate includes the FX markup fees. ### Note 1. In the sandbox, the FX rate is based on test data. 2. This endpoint replaces the deprecated endpoint - `GET /v1/rates/daily` Rapyd will continue to support the deprecated endpoint until March 31, 2025. [###### Parameters](#idp419358_body) [###### Request Query Parameters](#idp419360_body) * * action\_type * Determines the type of transaction that the currency exchange applies to. One of the following: * **payment** * **payout** * * amount * Amount of the currency exchange transaction, in units of the `fixed_side` currency. Decimal. * * buy\_currency * Defines the currency purchased in the currency exchange transaction. Three-letter ISO 4217 code. * * date * The date when the rate is applicable. Today or earlier. Format: **YYYY-MM-DD** * * fixed\_side * Indicates whether the rate is fixed for the currency defined by `buy_currency` or `sell_currency`. One of the following: * **buy** * **sell** * * sell\_currency * Defines the currency sold in the currency exchange transaction. Three-letter ISO 4217 code. [###### Request Header Parameters](#idp419417_body) [###### Response Parameters](#idp419467_body) * /v1/fx\_rates * Payment * curl -X get https://sandboxapi.rapyd.net/v1/fx\_rates?action\_type=payment&buy\_currency=USD&sell\_currency=EUR -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "aea11ec0-0d10-460a-81a9-d83d71620a9d" }, "data": { "sell\_currency": "USD", "buy\_currency": "ISK", "fixed\_side": "buy", "action\_type": "payment", "rate": 128.1629678715, "date": "2024-06-15", "sell\_amount": 7.8, "buy\_amount": 1000 } } * Payout * curl -X get https://sandboxapi.rapyd.net/v1/fx\_rates?action\_type=payout&buy\_currency=USD&sell\_currency=SGD -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "0c12bfeb-8b79-4f11-b522-0d09d84ba86f" }, "data": { "sell\_currency": "SGD", "buy\_currency": "USD", "fixed\_side": null, "action\_type": "payout", "rate": 0.716238, "date": "2024-06-15", "sell\_amount": null, "buy\_amount": null } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](list-currencies.html#idp419206) * [Next](get-fx-rate.html#idp419354) --- # Create Payout [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Disburse](rapyd-disburse-368669.html) * [Payout](payout.html) * Create Payout * [Prev](payout.html) * [Next](create-payout.html#idp352240) ##### Create Payout Create a payout (disbursement). To simulate a payout to a card, use card number **4111111111111111**. To complete your simulation in the sandbox, you must run [Complete Payout](complete-payout.html "Complete Payout") if the payout method requires the action of a third party. This method triggers the [Payout Created Webhook](payout-created-webhook.html "Payout Created Webhook") . This webhook contains the same information as the response. If the action of a third party is not required, the [Payout Completed Webhook](payout-completed-webhook.html "Payout Completed Webhook") is also triggered. The following asynchronous webhooks provide information about later changes to the Payout object: * [Payout Expired Webhook](payout-expired-webhook.html "Payout Expired Webhook") * [Payout Failed Webhook](payout-failed-webhook.html "Payout Failed Webhook") * [Payout Returned Webhook](payout-returned-webhook.html "Payout Returned Webhook") * [Payout Updated Webhook](payout-updated-webhook.html "Payout Updated Webhook") ### Note * Before you call this method, you must determine which payout methods are valid for the country, and which fields are required for the payout method. Use [List Payout Method Types](list-payout-method-types.html "List Payout Method Types") and [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields") . * Clients with [PCI](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pci_level_1 "PCI Level 1") certification can make a payout to a card. * Requests for very small amounts are rounded down to zero, are not processed and throw an error. This can occur in payouts with FX. * If you create a payout with FX and `confirm_automatically` is set to **false**, you must confirm creation of the payout with the FX rate included in the response by running [Confirm Payout with FX](confirm-payout-with-fx.html "Confirm Payout with FX") within a short time. The exact amount of time varies from payout method to payout method. * If you create a payout to a Rapyd Wallet and `beneficiary.confirmation_required` is set to **true**, you must run [Set Payout Response](set-payout-response.html "Set Payout Response") to accept or decline the payout. * For payout sandbox simulations , see [Testing for Payout API](testing-for-payout-api.html "Testing for Payout API") [###### Parameters](#idp352244_body) [###### Request Header Parameters](#idp352246_body) [###### Request Body Parameters](#idp352306_body) [###### Response Parameters](#idp352557_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var requestObj = new { beneficiary = new { name = "Jane Doe", address = "456 Second Street", email = "janedoe@rapyd.net", country = "US", city = "Anytown", postcode = "10101", account\_number = "BG96611020345678", bank\_name = "US General Bank", state = "NY", identification\_type = "SSC", identification\_value = "123456789", bic\_swift = "BUINBGSF", ach\_code = "123456789" }, beneficiary\_country = "US", beneficiary\_entity\_type = "individual", description = "Payout - Bank Transfer: Beneficiary/Sender objects", merchant\_reference\_id = "GHY-0YU-HUJ-POI", ewallet = "ewallet\_090e1ef18c3aa754fd43cce9ee454858", payout\_amount = "110", payout\_currency = "USD", payout\_method\_type = "us\_general\_bank", sender = new { name = "John Doe", address = "123 First Street", city = "Anytown", state = "NY", date\_of\_birth = "22/02/1980" postcode = "12345", remitter\_account\_type = "Individual", source\_of\_income = "salary", identification\_type = "License No", identification\_value = "123456789", purpose\_code = "ABCDEFGHI", account\_number = "123456789", beneficiary\_relationship = "client" }, sender\_country = "US", sender\_currency = "USD", sender\_entity\_type = "individual", metadata = new { merchant\_defined = true } }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/payouts", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { beneficiary: { name: 'Jane Doe', address: '456 Second Street', email: 'janedoe@rapyd.net', country: 'US', city: 'Anytown', postcode: '10101', account\_number: 'BG96611020345678', bank\_name: 'US General Bank', state: 'NY', identification\_type: 'SSC', identification\_value: '123456789', bic\_swift: 'BUINBGSF', ach\_code: '123456789' }, beneficiary\_country: 'US', beneficiary\_entity\_type: 'individual', description: 'Payout - Bank Transfer: Beneficiary/Sender objects', merchant\_reference\_id: 'GHY-0YU-HUJ-POI', ewallet: 'ewallet\_090e1ef18c3aa754fd43cce9ee454858', payout\_amount: 110, payout\_currency: 'USD', payout\_method\_type: 'us\_general\_bank', sender: { name: 'John Doe', address: '123 First Street', city: 'Anytown', state: 'NY', date\_of\_birth: '22/02/1980', postcode: '12345', remitter\_account\_type: 'Individual', source\_of\_income: 'salary', identification\_type: 'License No', identification\_value: '123456789', purpose\_code: 'ABCDEFGHI', account\_number: '123456789', beneficiary\_relationship: 'client' }, sender\_country: 'US', sender\_currency: 'USD', sender\_entity\_type: 'individual', metadata: { merchant\_defined: true } }; const result = await makeRequest('POST', '/v1/payouts', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $payout = \[\ "beneficiary" => array(\ "name" => "Jane Doe",\ "address" => "456 Second Street",\ "email" => "janedoe@rapyd.net",\ "country" => "US",\ "city" => "Anytown",\ "postcode" => "10101",\ "account\_number" => "BG96611020345678", \ "bank\_name" => "US General Bank",\ "state" => "NY",\ "identification\_type" => "SSC",\ "identification\_value" => "123456789",\ "bic\_swift" => "BUINBGSF",\ "ach\_code" => "123456789"\ ),\ "beneficiary\_country" => "US",\ "beneficiary\_entity\_type" => "individual",\ "description" => "Payout - Bank Transfer => Beneficiary/Sender objects",\ "merchant\_reference\_id" => "GHY-0YU-HUJ-POI",\ "ewallet" => "ewallet\_090e1ef18c3aa754fd43cce9ee454858",\ "payout\_amount" => "110",\ "payout\_currency" => "USD",\ "payout\_method\_type" => "us\_general\_bank",\ "sender" => array(\ "name" => "John Doe",\ "address" => "123 First Street",\ "city" => "Anytown",\ "state" => "NY",\ "date\_of\_birth" => "22/02/1980",\ "postcode" => "12345",\ "remitter\_account\_type" => "Individual",\ "source\_of\_income" => "salary",\ "identification\_type" => "License No",\ "identification\_value" => "123456789",\ "purpose\_code" => "ABCDEFGHI",\ "account\_number" => "123456789",\ "beneficiary\_relationship" => "client"\ ),\ "sender\_country" => "US",\ "sender\_currency" => "USD",\ "sender\_entity\_type" => "individual",\ "metadata" => array(\ "merchant\_defined" => true\ )\ \]; $object = make\_request('post', '/v1/payouts', $payout); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request payout\_body = { "beneficiary": { "name": "Jane Doe", "address": "456 Second Street", "email": "janedoe@rapyd.net", "country": "US", "city": "Anytown", "postcode": "10101", "account\_number": "BG96611020345678", "bank\_name": "US General Bank", "state": "NY", "identification\_type": "SSC", "identification\_value": "123456789", "bic\_swift": "BUINBGSF", "ach\_code": "123456789" }, "beneficiary\_country": "US", "beneficiary\_entity\_type": "individual", "description": "Payout - Bank Transfer: Beneficiary/Sender objects", "merchant\_reference\_id": "GHY-0YU-HUJ-POI", "ewallet": "ewallet\_090e1ef18c3aa754fd43cce9ee454858", "payout\_amount": "110", "payout\_currency": "USD", "payout\_method\_type": "us\_general\_bank", "sender": { "name": "John Doe", "address": "123 First Street", "city": "Anytown", "state": "NY", "date\_of\_birth": "22/02/1980", "postcode": "12345", "remitter\_account\_type": "Individual", "source\_of\_income": "salary", "identification\_type": "License No", "identification\_value": "123456789", "purpose\_code": "ABCDEFGHI", "account\_number": "123456789", "beneficiary\_relationship": "client" }, "sender\_country": "US", "sender\_currency": "USD", "sender\_entity\_type": "individual", "metadata": { "merchant\_defined": True } } result = make\_request(method='post', path='/v1/payouts', body=payout\_body) pprint(result) * /v1/payouts * Payout - Bank Transfer: Beneficiary/Sender objects * curl -X post https://sandboxapi.rapyd.net/v1/payouts -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "beneficiary": { "first\_name": "Jane", "last\_name": "Doe", "name": "Jane Doe", "address": "456 Second Street", "email": "janedoe@rapyd.net", "country": "US", "city": "Anytown", "postcode": "10101", "account\_number": "BG96611020345678", "bank\_name": "sg\_ocbc\_bank", "state": "NY", "identification\_type": "SSC", "identification\_value": "123456789", "bic\_swift": "ABCDSGGG", "ach\_code": "123456789" }, "beneficiary\_country": "SG", "beneficiary\_entity\_type": "individual", "description": "Payout - Bank Transfer: Beneficiary/Sender objects", "merchant\_reference\_id": "GHY-0YU-HUJ-POI", "ewallet": "ewallet\_4f1757749b8858160274e6db49f78ff3", "payout\_amount": "110", "payout\_currency": "SGD", "payout\_method\_type": "sg\_ocbc\_bank", "sender": { "name": "John Doe", "address": "123 First Street", "city": "Anytown", "state": "NY", "date\_of\_birth": "22/02/1980", "postcode": "12345", "remitter\_account\_type": "Individual", "source\_of\_income": "salary", "identification\_type": "License No", "identification\_value": "123456789", "purpose\_code": "computer\_services", "account\_number": "123456789", "beneficiary\_relationship": "client" }, "sender\_country": "SG", "sender\_currency": "SGD", "sender\_entity\_type": "individual", "statement\_descriptor":"800-123-4567", "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "e85516a8-b295-4626-8b6e-323bdef2f435" }, "data": { "id": "payout\_a7e3bc0c1a955b9d587bc43db551323a", "payout\_type": "bank", "payout\_method\_type": "sg\_ocbc\_bank", "amount": 110, "payout\_currency": "SGD", "sender\_amount": 110, "sender\_currency": "SGD", "status": "Created", "sender\_country": "SG", "sender": { "id": "sender\_51467a0aafc437a28967df129dbd5e7a", "country": "SG", "entity\_type": "individual", "address": "123 First Street", "name": "John Doe", "date\_of\_birth": "22/02/1980", "postcode": "12345", "city": "Anytown", "state": "NY", "account\_number": "123456789", "currency": "SGD", "identification\_type": "License No", "identification\_value": "123456789", "purpose\_code": "computer\_services", "beneficiary\_relationship": "client", "source\_of\_income": "salary" }, "beneficiary\_country": "SG", "beneficiary": { "id": "beneficiary\_81fdb04df9cc01c0488dcbbf02c76edd", "last\_name": "Doe", "first\_name": "Jane", "country": "US", "entity\_type": "individual", "address": "456 Second Street", "name": "Jane Doe", "postcode": "10101", "city": "Anytown", "state": "NY", "account\_number": "BG96611020345678", "currency": "SGD", "email": "janedoe@rapyd.net", "identification\_type": "SSC", "identification\_value": "\*\*\*\*\*\*\*\*\*", "bank\_name": "sg\_ocbc\_bank", "bic\_swift": "ABCDSGGG", "ach\_code": "123456789" }, "fx\_rate": 1, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "The funds will be transferred to the provided account details of the beneficiary"\ }\ \]\ }\ \], "ewallets": \[\ {\ "ewallet\_id": "ewallet\_4f1757749b8858160274e6db49f78ff3",\ "amount": 110,\ "percent": 100\ }\ \], "metadata": { "merchant\_defined": true }, "description": "Payout - Bank Transfer: Beneficiary/Sender objects", "created\_at": 1701346573, "payout\_fees": null, "expiration": null, "merchant\_reference\_id": "GHY-0YU-HUJ-POI", "paid\_at": null, "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 0, "statement\_descriptor": "800-123-4567", "gc\_error\_code": null, "batch\_file": null, "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method" } } * Payout - Bank Transfer: Beneficiary/Sender IDs * curl -X post https://sandboxapi.rapyd.net/v1/payouts -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "beneficiary": "beneficiary\_81fdb04df9cc01c0488dcbbf02c76edd", "beneficiary\_country": "SG", "beneficiary\_entity\_type": "individual", "description": "Payout - Bank Transfer: Beneficiary/Sender IDs", "merchant\_reference\_id": "GHY-0YU-HUJ-POI", "ewallet": "ewallet\_4f1757749b8858160274e6db49f78ff3", "payout\_amount": "110", "payout\_currency": "SGD", "payout\_method\_type": "sg\_ocbc\_bank", "sender": "sender\_94e84ba869e20da70be5b0c0027c889d", "sender\_country": "SG", "sender\_currency": "SGD", "sender\_entity\_type": "company", "statement\_descriptor":"800-123-4567", "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "c1474e02-7e7f-4a40-85c0-b77123dc5bfe" }, "data": { "id": "payout\_90430bf475b4a02179e2597e2eccb8da", "payout\_type": "bank", "payout\_method\_type": "sg\_ocbc\_bank", "amount": 110, "payout\_currency": "SGD", "sender\_amount": 110, "sender\_currency": "SGD", "status": "Created", "sender\_country": "US", "sender": { "id": "sender\_94e84ba869e20da70be5b0c0027c889d", "country": "US", "entity\_type": "company", "address": "address 2", "name": "Rapyd", "postcode": "3333", "city": "Amsterdam", "phone\_number": "19019044444", "company\_name": "Rapyd", "currency": "SGD", "identification\_value": "unc\_num\_123333", "province": "Amsterdam", "occupation": "Ridesharing" }, "beneficiary\_country": "SG", "beneficiary": { "id": "beneficiary\_81fdb04df9cc01c0488dcbbf02c76edd", "last\_name": "Doe", "first\_name": "Jane", "country": "US", "entity\_type": "individual", "address": "456 Second Street", "name": "Jane Doe", "postcode": "10101", "city": "Anytown", "state": "NY", "account\_number": "BG96611020345678", "currency": "SGD", "email": "janedoe@rapyd.net", "identification\_type": "SSC", "identification\_value": "\*\*\*\*\*\*\*\*\*", "bank\_name": "sg\_ocbc\_bank", "bic\_swift": "ABCDSGGG", "ach\_code": "123456789" }, "fx\_rate": 1, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "The funds will be transferred to the provided account details of the beneficiary"\ }\ \]\ }\ \], "ewallets": \[\ {\ "ewallet\_id": "ewallet\_4f1757749b8858160274e6db49f78ff3",\ "amount": 110,\ "percent": 100\ }\ \], "metadata": { "merchant\_defined": true }, "description": "Payout - Bank Transfer: Beneficiary/Sender IDs", "created\_at": 1701347645, "payout\_fees": null, "expiration": null, "merchant\_reference\_id": "GHY-0YU-HUJ-POI", "paid\_at": null, "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 0, "statement\_descriptor": "800-123-4567", "gc\_error\_code": null, "batch\_file": null, "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method" } } * Payout to Local eWallet * curl -X post https://sandboxapi.rapyd.net/v1/payouts -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "payout\_method\_type": "ke\_mpesa\_ewallet", "confirm\_automatically": true, "payout\_amount": 10, "payer\_country": "US", "payer\_currency": "USD", "beneficiary\_country": "KE", "payout\_currency": "KES", "beneficiary\_entity\_type": "individual", "beneficiary": { "first\_name": "John", "last\_name": "Doe", "phone\_number": "+254987655555", "address": "6th street", "date\_of\_birth": "1999-01-01", "identification\_value": "123456789" }, "payer\_entity\_type": "company", "payer": { "company\_name": "Acme, Inc.", "address": "7th street", "city": "New Town", "postcode": "12345", "incorporation\_number": "6tgwey", "date\_of\_incorporation": "1999-03-12", "purpose\_code": "Proceeds\_for\_construction\_services" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "716a8ed3-0d1c-4ffb-a18d-ad9683167096" }, "data": { "id": "payout\_9218a0acf6262638f436da3520fa4aa1", "payout\_type": "ewallet", "payout\_method\_type": "ke\_mpesa\_ewallet", "amount": 10, "payout\_currency": "KES", "sender\_amount": 0.07, "sender\_currency": "USD", "status": "Created", "sender\_country": "US", "sender": { "id": "sender\_fd824bc7a4336b609a3a5e22cb1f26f6", "country": "US", "entity\_type": "company", "address": "7th street", "name": "Acme, Inc.", "date\_of\_incorporation": "1999-03-12", "postcode": "12345", "city": "New Town", "company\_name": "Acme, Inc.", "currency": "USD", "purpose\_code": "Proceeds\_for\_construction\_services" }, "beneficiary\_country": "KE", "beneficiary": { "id": "beneficiary\_e6ac289f188f8f522ef49606074332a0", "last\_name": "Doe", "first\_name": "John", "country": "KE", "entity\_type": "individual", "address": "6th street", "name": "John Doe", "date\_of\_birth": "1999-01-01", "phone\_number": "+254987655555", "currency": "KES", "identification\_value": "\*\*\*\*\*\*\*\*\*" }, "fx\_rate": 153.01774929, "instructions": { "name": "instructions", "steps": \[\ {\ "step1": "The funds will be transferred to the specified ewallet of the beneficiary."\ }\ \] }, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_c1943cfeda5f98247ab117e5d2648861",\ "amount": 0.07,\ "percent": 100\ }\ \], "metadata": {}, "created\_at": 1704797044, "payout\_fees": null, "expiration": null, "paid\_at": null, "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 0, "statement\_descriptor": null, "gc\_error\_code": null, "batch\_file": null, "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method" } } * Payout with FX - Rate Confirmation Required * curl -X post https://sandboxapi.rapyd.net/v1/payouts -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "beneficiary": "beneficiary\_d75798c2168f04a552542880ba772966", "beneficiary\_country": "MX", "beneficiary\_entity\_type": "individual", "confirm\_automatically": false, "description": "FX with confirmation", "ewallet": "ewallet\_4f1757749b8858160274e6db49f78ff3", "payout\_amount": "2000", "payout\_currency": "MXN", "payout\_method\_type": "mx\_abc\_capital\_bank", "sender": "sender\_94e84ba869e20da70be5b0c0027c889d", "sender\_country": "MX", "sender\_currency": "USD", "sender\_entity\_type": "company", "statement\_descriptor": "RIDE MX payout monthly", "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "acacbe8d-3543-4ddb-8cb7-850aa0cfcfbe" }, "data": { "id": "payout\_15f6e010f75702209df917a1e3b46b5f", "payout\_type": "bank", "payout\_method\_type": "mx\_abc\_capital\_bank", "amount": 2000, "payout\_currency": "MXN", "sender\_amount": 119.09, "sender\_currency": "USD", "status": "Confirmation", "sender\_country": "US", "sender": { "id": "sender\_94e84ba869e20da70be5b0c0027c889d", "country": "US", "entity\_type": "company", "address": "address 2", "name": "Rapyd", "postcode": "3333", "city": "Amsterdam", "phone\_number": "19019044444", "company\_name": "Rapyd", "currency": "USD", "identification\_value": "unc\_num\_123333", "province": "Amsterdam", "occupation": "Ridesharing" }, "beneficiary\_country": "MX", "beneficiary": { "id": "beneficiary\_d75798c2168f04a552542880ba772966", "last\_name": "Doe", "first\_name": "Jane", "country": "MX", "entity\_type": "individual", "name": "Jane Doe", "currency": "MXN", "bank\_name": "Jane Doe", "category": "bank" }, "fx\_rate": 16.7938622, "instructions": {}, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_4f1757749b8858160274e6db49f78ff3",\ "amount": 119.09,\ "percent": 100\ }\ \], "metadata": { "merchant\_defined": true }, "description": "FX with confirmation", "created\_at": 0, "payout\_fees": null, "expiration": null, "paid\_at": null, "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 0, "statement\_descriptor": "RIDE MX payout monthly", "gc\_error\_code": "NOT\_IMPLEMENTED", "batch\_file": null, "estimated\_time\_of\_arrival": null } } * Payout with FX - Automatic Rate Confirmation * curl -X post https://sandboxapi.rapyd.net/v1/payouts -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "beneficiary": "beneficiary\_81fdb04df9cc01c0488dcbbf02c76edd", "beneficiary\_country": "SG", "beneficiary\_entity\_type": "individual", "confirm\_automatically": true, "description": "Salary", "ewallet": "", "payout\_amount": "2000", "payout\_currency": "SGD", "payout\_method\_type": "sg\_ocbc\_bank", "sender": "sender\_94e84ba869e20da70be5b0c0027c889d", "sender\_country": "SG", "sender\_currency": "USD", "sender\_entity\_type": "company", "statement\_descriptor": "Salary-monthly-part-time", "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "311afcf4-5074-432d-98cf-e17597f7fbf6" }, "data": { "id": "payout\_60dca835ac0b2c822f76c48641d8bae0", "payout\_type": "bank", "payout\_method\_type": "sg\_ocbc\_bank", "amount": 2000, "payout\_currency": "SGD", "sender\_amount": 1544.58, "sender\_currency": "USD", "status": "Created", "sender\_country": "US", "sender": { "id": "sender\_94e84ba869e20da70be5b0c0027c889d", "country": "US", "entity\_type": "company", "address": "address 2", "name": "Rapyd", "postcode": "3333", "city": "Amsterdam", "phone\_number": "19019044444", "company\_name": "Rapyd", "currency": "USD", "identification\_value": "unc\_num\_123333", "province": "Amsterdam", "occupation": "Ridesharing" }, "beneficiary\_country": "SG", "beneficiary": { "id": "beneficiary\_81fdb04df9cc01c0488dcbbf02c76edd", "last\_name": "Doe", "first\_name": "Jane", "country": "US", "entity\_type": "individual", "address": "456 Second Street", "name": "Jane Doe", "postcode": "10101", "city": "Anytown", "state": "NY", "account\_number": "BG96611020345678", "currency": "SGD", "email": "janedoe@rapyd.net", "identification\_type": "SSC", "identification\_value": "\*\*\*\*\*\*\*\*\*", "bank\_name": "sg\_ocbc\_bank", "bic\_swift": "ABCDSGGG", "ach\_code": "123456789" }, "fx\_rate": 1.29485397, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "The funds will be transferred to the provided account details of the beneficiary"\ }\ \]\ }\ \], "ewallets": \[\ {\ "ewallet\_id": "ewallet\_c1943cfeda5f98247ab117e5d2648861",\ "amount": 1544.58,\ "percent": 100\ }\ \], "metadata": { "merchant\_defined": true }, "description": "Salary", "created\_at": 1701684409, "payout\_fees": null, "expiration": null, "paid\_at": null, "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 0, "statement\_descriptor": "Salary-monthly-part-time", "gc\_error\_code": null, "batch\_file": null, "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method" } } * Payout to Card * curl -X post https://sandboxapi.rapyd.net/v1/payouts -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "ewallet": "ewallet\_4f1757749b8858160274e6db49f78ff3", "payout\_amount": 250, "payout\_method\_type": "us\_visa\_card", "sender\_currency": "USD", "sender\_country": "US", "beneficiary": { "email": "janedoe@Rapyd.net ", "card\_number": "4111111111111111", "card\_expiration\_month": "11", "card\_expiration\_year": "24", "card\_cvv": "123", "first\_name": "Jane", "last\_name": "Doe" }, "beneficiary\_country": "US", "payout\_currency": "USD", "sender\_entity\_type": "company", "beneficiary\_entity\_type": "individual", "sender": { "company\_name": "RideShare", "postcode": "WSQ12", "city": "Any Town", "state": "New State", "address": "123 1st ave." }, "description": "Payout to card", "statement\_descriptor":"monthly expenses-part time" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "d3e883aa-f306-465a-9ab4-ac66fc0d2557" }, "data": { "id": "payout\_c59bb548e39cd9afa9a3238df83ddb3b", "payout\_type": "card", "payout\_method\_type": "us\_visa\_card", "amount": 250, "payout\_currency": "USD", "sender\_amount": 250, "sender\_currency": "USD", "status": "Completed", "sender\_country": "US", "sender": { "id": "sender\_d59e97c04385d2af91936749faff10ac", "country": "US", "entity\_type": "company", "address": "123 1st ave.", "name": "RideShare", "postcode": "WSQ12", "city": "Any Town", "state": "New State", "company\_name": "RideShare", "currency": "USD" }, "beneficiary\_country": "US", "beneficiary": { "id": "beneficiary\_109bf92da26b40cadced4f012d8a89e6", "last\_name": "Doe", "first\_name": "Jane", "country": "US", "entity\_type": "individual", "name": "Jane Doe", "currency": "USD", "email": "janedoe@Rapyd.net ", "card\_expiration\_year": "24", "card\_expiration\_month": "11", "card\_number": "1111" }, "fx\_rate": 1, "instructions": { "name": "instructions", "steps": \[\ {\ "step1": "The funds will be transferred to the provided credit card of the beneficiary ."\ }\ \] }, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_4f1757749b8858160274e6db49f78ff3",\ "amount": 250,\ "percent": 100\ }\ \], "metadata": {}, "description": "Payout to card", "created\_at": 1701607413, "payout\_fees": null, "expiration": null, "merchant\_reference\_id": "", "paid\_at": null, "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 250, "statement\_descriptor": "monthly expenses-part time", "gc\_error\_code": null, "batch\_file": null, "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method" } } * Payout to Card: Beneficiary Object with card\_id * curl -X post https://sandboxapi.rapyd.net/v1/payouts -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' - d '{ "payout\_amount": 2.44, "payout\_currency": "USD", "type": "card", "sender\_currency": "USD", "sender\_country": "US", "beneficiary\_country": "US", "sender\_entity\_type": "company", "beneficiary\_entity\_type": "individual", "payout\_method\_type": "us\_mastercard\_card", "beneficiary": { "card\_id": "card\_34d9a74d81ba015f96a8066938d5fd37", "first\_name": "John", "last\_name": "Doe" }, "sender": { "company\_name": "ACME Company", "postcode": "10001", "city": "New York", "state": "NY", "address": "123 First Avenue" }, "description": "Payout to card ID", "ewallet": "ewallet\_a2231b55c5ba23d904131d749f7ac62b", "confirm\_automatically": true } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "22810b9e-5c63-4ec6-8561-d20358c6c4a4" }, "data": { "id": "payout\_566902d9736ad607cdad7e94018520d0", "payout\_type": "card", "payout\_method\_type": "us\_mastercard\_card", "amount": 2.44, "payout\_currency": "USD", "sender\_amount": 2.44, "sender\_currency": "USD", "status": "Completed", "sender\_country": "US", "sender": { "id": "sender\_c540125118559a3f0794c5e661a5a4e2", "country": "US", "entity\_type": "company", "address": "123 First Avenue", "name": "ACME Company", "postcode": "10001", "city": "New York", "state": "NY", "company\_name": "ACME Company", "currency": "USD" }, "beneficiary\_country": "US", "beneficiary": { "id": "beneficiary\_10c7036adb90b6e4e43cac40c4b836fd", "last\_name": "Doe", "first\_name": "John", "country": "US", "entity\_type": "individual", "name": "John Doe", "currency": "USD", "card\_expiration\_year": "24", "card\_expiration\_month": "03", "card\_number": "0441" }, "fx\_rate": 1, "instructions": { "name": "instructions", "steps": \[\ {\ "step1": "The funds will be transferred to the provided credit card of the beneficiary ."\ }\ \] }, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_a2231b55c5ba23d904131d749f7ac62b",\ "amount": 2.44,\ "percent": 100\ }\ \], "metadata": {}, "description": "Payout to card ID", "created\_at": 1701607763, "payout\_fees": null, "expiration": null, "merchant\_reference\_id": "", "paid\_at": null, "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 2.44, "statement\_descriptor": null, "gc\_error\_code": null, "batch\_file": null, "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method" } } * Payout with FX - Fixed Sender Amount * curl -X post https://sandboxapi.rapyd.net/v1/payouts -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "beneficiary": "beneficiary\_81fdb04df9cc01c0488dcbbf02c76edd", "beneficiary\_country": "sg", "beneficiary\_entity\_type": "individual", "confirm\_automatically": true, "description": "Salary", "ewallet": "ewallet\_6bf0e86b4c5e451691cf1f4e88b52eec", "sender\_amount": "2000", "payout\_currency": "sgd", "payout\_method\_type": "sg\_ocbc\_bank", "sender": "sender\_94e84ba869e20da70be5b0c0027c889d", "sender\_country": "us", "sender\_currency": "usd", "sender\_entity\_type": "company", "statement\_descriptor": "Salary-monthly-part-time", "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "1a67fc33-8b37-470a-b1f6-332fe13137dc" }, "data": { "id": "payout\_3df8720f731379f6d3e21e819ce4d750", "payout\_type": "bank", "payout\_method\_type": "sg\_ocbc\_bank", "amount": 2587.19, "payout\_currency": "sgd", "sender\_amount": 2000, "sender\_currency": "usd", "status": "Created", "sender\_country": "US", "sender": { "id": "sender\_94e84ba869e20da70be5b0c0027c889d", "country": "US", "entity\_type": "company", "address": "address 2", "name": "Rapyd", "postcode": "3333", "city": "Amsterdam", "phone\_number": "19019044444", "company\_name": "Rapyd", "currency": "usd", "identification\_value": "unc\_num\_123333", "province": "Amsterdam", "occupation": "Ridesharing" }, "beneficiary\_country": "SG", "beneficiary": { "id": "beneficiary\_81fdb04df9cc01c0488dcbbf02c76edd", "last\_name": "Doe", "first\_name": "Jane", "country": "US", "entity\_type": "individual", "address": "456 Second Street", "name": "Jane Doe", "postcode": "10101", "city": "Anytown", "state": "NY", "account\_number": "BG96611020345678", "currency": "sgd", "email": "janedoe@rapyd.net", "identification\_type": "SSC", "identification\_value": "\*\*\*\*\*\*\*\*\*", "bank\_name": "sg\_ocbc\_bank", "bic\_swift": "ABCDSGGG", "ach\_code": "123456789" }, "fx\_rate": 1.29359588, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "The funds will be transferred to the provided account details of the beneficiary"\ }\ \]\ }\ \], "ewallets": \[\ {\ "ewallet\_id": "ewallet\_6bf0e86b4c5e451691cf1f4e88b52eec",\ "amount": 2000,\ "percent": 100\ }\ \], "metadata": { "merchant\_defined": true }, "description": "Salary", "created\_at": 1701609492, "payout\_fees": null, "expiration": null, "paid\_at": null, "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 0, "statement\_descriptor": "Salary-monthly-part-time", "gc\_error\_code": null, "batch\_file": null, "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method" } } * Payout with FX - Fixed Payout Amount * curl -X post https://sandboxapi.rapyd.net/v1/payouts -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "beneficiary": "beneficiary\_81fdb04df9cc01c0488dcbbf02c76edd", "beneficiary\_country": "SG", "beneficiary\_entity\_type": "individual", "confirm\_automatically": true, "description": "Salary", "ewallet": "ewallet\_6bf0e86b4c5e451691cf1f4e88b52eec", "payout\_amount": "38000", "payout\_currency": "sgd", "payout\_method\_type": "sg\_ocbc\_bank", "sender": "sender\_94e84ba869e20da70be5b0c0027c889d", "sender\_country": "sg", "sender\_currency": "USD", "sender\_entity\_type": "company", "statement\_descriptor": "Salary-monthly-part-time", "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "3bc50846-871d-4b60-91bc-f4081cfc2e11" }, "data": { "id": "payout\_2f985148d37867dcc0c1c84532179e82", "payout\_type": "bank", "payout\_method\_type": "sg\_ocbc\_bank", "amount": 38000, "payout\_currency": "sgd", "sender\_amount": 29375.48, "sender\_currency": "USD", "status": "Created", "sender\_country": "US", "sender": { "id": "sender\_94e84ba869e20da70be5b0c0027c889d", "country": "US", "entity\_type": "company", "address": "address 2", "name": "Rapyd", "postcode": "3333", "city": "Amsterdam", "phone\_number": "19019044444", "company\_name": "Rapyd", "currency": "USD", "identification\_value": "unc\_num\_123333", "province": "Amsterdam", "occupation": "Ridesharing" }, "beneficiary\_country": "SG", "beneficiary": { "id": "beneficiary\_81fdb04df9cc01c0488dcbbf02c76edd", "last\_name": "Doe", "first\_name": "Jane", "country": "US", "entity\_type": "individual", "address": "456 Second Street", "name": "Jane Doe", "postcode": "10101", "city": "Anytown", "state": "NY", "account\_number": "BG96611020345678", "currency": "sgd", "email": "janedoe@rapyd.net", "identification\_type": "SSC", "identification\_value": "\*\*\*\*\*\*\*\*\*", "bank\_name": "sg\_ocbc\_bank", "bic\_swift": "ABCDSGGG", "ach\_code": "123456789" }, "fx\_rate": 1.29359588, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "The funds will be transferred to the provided account details of the beneficiary"\ }\ \]\ }\ \], "ewallets": \[\ {\ "ewallet\_id": "ewallet\_6bf0e86b4c5e451691cf1f4e88b52eec",\ "amount": 29375.48,\ "percent": 100\ }\ \], "metadata": { "merchant\_defined": true }, "description": "Salary", "created\_at": 1701610499, "payout\_fees": null, "expiration": null, "paid\_at": null, "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 0, "statement\_descriptor": "Salary-monthly-part-time", "gc\_error\_code": null, "batch\_file": null, "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method" } } * Payout with Fees * curl -X post https://sandboxapi.rapyd.net/v1/payouts -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "ewallet": "ewallet\_4434255c83c8c28113fe8b34b3260d0d", "merchant\_reference\_id": "G0GR-POYD-5uMK-96Q1", "payout\_amount": 100, "payout\_method\_type": "sg\_ocbc\_bank", "sender\_currency": "sgd", "sender\_country": "sg", "beneficiary\_country": "sg", "payout\_currency": "sgd", "sender\_entity\_type": "company", "beneficiary\_entity\_type": "individual", "beneficiary": { "name": "Jane Doe", "first\_name": "Jane", "last\_name": "Doe", "address": "456 Second Street", "email": "janedoe@rapyd.net", "country": "sg", "city": "Anytown", "postcode": "10101", "account\_number": "BG96611", "state": "South Region", "payment\_type": "priority", "identification\_type": "passport", "identification\_value": "123456789", "bank\_name": "sg\_ocbc\_bank", "bic\_swift": "ABCDSGGG", "ach\_code": "123456789" }, "sender": { "address": "123 First Street", "city": "Anytown", "state": "North Region", "date\_of\_birth": "22/02/1980", "postcode": "12345", "phonenumber": "621212938122", "remitter\_account\_type": "Individual", "source\_of\_income": "salary", "identification\_type": "License No", "identification\_value": "123456789", "bic\_swift": "ABCDSGGG", "purpose\_code": "salary", "account\_number": "123456789", "beneficiary\_relationship": "client", "company\_name": "Acme music streaming services" }, "payout\_fees": { "transaction\_fee": { "calc\_type": "gross", "fee\_type": "absolute", "value": 2 }, "fx\_fee": { "calc\_type": "gross", "fee\_type": "percentage", "value": 2.5 }, "description": "Salary payout - wallet to cash", "statement\_descriptor": "Salary-monthly-part-time", "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "a5905a16-3d7d-4589-904e-dbbbf96ace4b" }, "data": { "id": "payout\_45c32d9a1e8a93a3b12ccde923422779", "payout\_type": "bank", "payout\_method\_type": "sg\_ocbc\_bank", "amount": 100, "payout\_currency": "sgd", "sender\_amount": 104.5, "sender\_currency": "sgd", "status": "Created", "sender\_country": "sg", "sender": { "id": "sender\_69a7b88bcc979c89f5f813b9198c85ba", "country": "sg", "entity\_type": "company", "address": "123 First Street", "name": "Acme music streaming services", "date\_of\_birth": "22/02/1980", "postcode": "12345", "city": "Anytown", "state": "North Region", "company\_name": "Acme music streaming services", "account\_number": "123456789", "currency": "sgd", "identification\_type": "License No", "identification\_value": "123456789", "purpose\_code": "salary", "beneficiary\_relationship": "client", "source\_of\_income": "salary" }, "beneficiary\_country": "SG", "beneficiary": { "id": "beneficiary\_8495e5f5f2580b9cc5bf6f8a595e887a", "last\_name": "Doe", "first\_name": "Jane", "country": "sg", "entity\_type": "individual", "address": "456 Second Street", "name": "Jane Doe", "postcode": "10101", "city": "Anytown", "state": "South Region", "account\_number": "BG96611", "currency": "sgd", "email": "janedoe@rapyd.net", "identification\_type": "passport", "identification\_value": "\*\*\*\*\*\*\*\*\*", "bank\_name": "sg\_ocbc\_bank", "bic\_swift": "ABCDSGGG", "ach\_code": "123456789", "payment\_type": "priority" }, "fx\_rate": 1, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "The funds will be transferred to the provided account details of the beneficiary"\ }\ \]\ }\ \], "ewallets": \[\ {\ "ewallet\_id": "ewallet\_4434255c83c8c28113fe8b34b3260d0d",\ "amount": 104.5,\ "percent": 100\ }\ \], "metadata": {}, "created\_at": 1701611066, "payout\_fees": { "transaction\_fee": { "calc\_type": "gross", "value": 2, "fee\_type": "absolute" }, "fx\_fee": { "calc\_type": "gross", "value": 2.5 }, "gross\_fees": 4.5, "net\_fees": 0 }, "expiration": null, "merchant\_reference\_id": "G0GR-POYD-5uMK-96Q1", "paid\_at": null, "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 0, "statement\_descriptor": null, "gc\_error\_code": null, "batch\_file": null, "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method" } } * Payout to Rapyd Wallet - Confirmation Required * curl -X post https://sandboxapi.rapyd.net/v1/payouts -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "payout\_method\_type": "rapyd\_ewallet", "ewallet": "ewallet\_a2231b55c5ba23d904131d749f7ac62b", "description": "Confirmation Required", "payout\_amount": "100", "payout\_currency": "sgd", "sender\_country": "us", "sender\_currency": "usd", "sender\_entity\_type": "individual", "beneficiary\_entity\_type": "individual", "beneficiary\_country": "sg", "beneficiary": { "confirmation\_required": true, "ewallet": "ewallet\_5a8973b94513036d5f87418eda29e15d" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "4dfec10f-2553-4450-b0b5-a5bae51f9c46" }, "data": { "id": "payout\_c4cdb4c09f12e13669343545ac1fe2bd", "payout\_type": "rapyd\_ewallet", "payout\_method\_type": "rapyd\_ewallet", "amount": 100, "payout\_currency": "sgd", "sender\_amount": 77.36, "sender\_currency": "usd", "status": "Confirmation", "sender\_country": "us", "sender": { "country": "us", "entity\_type": "individual", "currency": "usd" }, "beneficiary\_country": null, "beneficiary": { "currency": "sgd", "ewallet": "ewallet\_5a8973b94513036d5f87418eda29e15d", "confirmation\_required": true }, "fx\_rate": 1.2926705, "instructions": {}, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_a2231b55c5ba23d904131d749f7ac62b",\ "amount": 77.36,\ "percent": 100\ }\ \], "metadata": {}, "description": "Confirmation Required", "created\_at": 0, "payout\_fees": null, "expiration": null, "paid\_at": null, "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 0, "statement\_descriptor": null, "gc\_error\_code": "NOT\_IMPLEMENTED", "batch\_file": null, "estimated\_time\_of\_arrival": null } } * Payout - Estimated Time of Arrival * curl -X post https://sandboxapi.rapyd.net/v1/payouts -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "beneficiary": { "payment\_type": "priority", "address": "1 First Avenue", "city": "Vienna", "country": "AT", "first\_name": "John", "last\_name": "Doe", "iban": "GB29NWBK60161331926819" }, "confirm\_automatically": true, "beneficiary\_entity\_type": "individual", "payout\_amount": 2, "payout\_currency": "EUR", "payout\_method\_type": "eu\_sepa\_bank", "sender": { "company\_name": "Acme", "address": "2 Second Avenue", "city": "Copenhagen", "country": "DK", "date\_of\_birth": "27/09/1980", "postcode": "67899", "identification\_type":"incorporation\_number", "identification\_value":"123464" }, "sender\_country": "DK", "sender\_currency": "USD", "sender\_entity\_type": "company" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "89fc1d6b-a77e-45e6-b96c-b2fa1913bd9d" }, "data": { "id": "payout\_ff65ccd8b0d72a4d8815f7505c7502cf", "payout\_type": "bank", "payout\_method\_type": "eu\_sepa\_bank", "amount": 2, "payout\_currency": "EUR", "sender\_amount": 2.24, "sender\_currency": "USD", "status": "Created", "sender\_country": "DK", "sender": { "id": "sender\_ae35934b3a24216fe11ddfda24b27917", "country": "DK", "entity\_type": "company", "name": "Jane Doe", "company\_name": "Acme", "currency": "USD" }, "beneficiary\_country": "AT", "beneficiary": { "id": "beneficiary\_995bc4956db754f9cfe7b66f20fa7b67", "last\_name": "Doe", "first\_name": "John", "country": "AT", "entity\_type": "individual", "name": "John Doe", "currency": "EUR", "iban": "GB29NWBK60161331926819" }, "fx\_rate": 0.8943885, "instructions": \[{\ "name": "instructions",\ "steps": \[{\ "step1": "The funds will be transferred to the provided account details of the beneficiary."\ }\ \]\ }\ \], "ewallets": \[{\ "ewallet\_id": "ewallet\_a5d0ff1865fe71967d64a294dbd1de22",\ "amount": 2.24,\ "percent": 100\ }\ \], "metadata": {}, "created\_at": 1680092948, "payout\_fees": null, "expiration": null, "paid\_at": null, "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 0, "statement\_descriptor": null, "gc\_error\_code": null, "estimated\_time\_of\_arrival": "The beneficiary will receive the funds within 5 minutesThe beneficiary will receive the funds in a few minutes." } } * Payout - On Hold * curl -X post https://sandboxapi.rapyd.net/v1/payouts -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "confirm\_automatically": "true", "beneficiary": { "first\_name": "John", "last\_name": "Doe", "address": "456 Second Street", "email": "jdoe@rapyd.net", "country": "GB", "city": "Anytown", "postcode": "10101", "account\_number": "BG96611020345678", "bank\_name": "gb\_local\_bank", "identification\_type": "passport", "identification\_value": "123456789", "sort\_code": "123225", "bic\_swift": "IIIGGB22", "ach\_code": "123456789" }, "beneficiary\_country": "GB", "beneficiary\_entity\_type": "individual", "description": "Payout - Bank Transfer: Beneficiary/Sender objects", "merchant\_reference\_id": "GHY-1YU-HUJ-POI", "ewallet": "ewallet\_9bc4ba65f0c4bf9f86d843920525e3a5", "payout\_amount": "223", "payout\_currency": "GBP", "payout\_method\_type": "gb\_local\_bank", "sender": { "first\_name": "Jane", "last\_name": "Doe", "address": "123 First Street", "city": "Anytown", "state": "NY", "date\_of\_birth": "22/02/1980", "postcode": "12345", "phonenumber": "621212938122", "remitter\_account\_type": "Individual", "source\_of\_income": "salary", "identification\_type": "License No", "identification\_value": "123456789", "purpose\_code": "ABCDEFGHI", "account\_number": "123456789", "beneficiary\_relationship": "client" }, "sender\_country": "NL", "sender\_currency": "USD", "sender\_entity\_type": "individual", "statement\_descriptor": "GHY\* Limited Access 800-123-4567", "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "f93e9d57-70db-4177-a203-0daf74fd3568" }, "data": { "id": "payout\_0e7987911f4131fed2c8132ca378f387", "payout\_type": "bank", "payout\_method\_type": "gb\_local\_bank", "amount": 223, "payout\_currency": "GBP", "sender\_amount": 281.51, "sender\_currency": "USD", "status": "Hold", "sender\_country": "NL", "sender": { "id": "sender\_8dc0dd53b017425311b3066a3a85b53e", "last\_name": "Doe", "first\_name": "Jane", "country": "NL", "entity\_type": "individual", "address": "123 First Street", "name": "Jane Doe", "date\_of\_birth": "22/02/1980", "postcode": "12345", "city": "Anytown", "state": "NY", "account\_number": "123456789", "currency": "USD", "identification\_type": "License No", "identification\_value": "123456789", "purpose\_code": "ABCDEFGHI", "beneficiary\_relationship": "client", "source\_of\_income": "salary" }, "beneficiary\_country": "GB", "beneficiary": { "id": "beneficiary\_023925515b8776feee14b15f30f7f0c6", "last\_name": "Doe", "first\_name": "John", "country": "GB", "entity\_type": "individual", "address": "456 Second Street", "name": "John Doe", "postcode": "10101", "city": "Anytown", "account\_number": "BG96611020345678", "currency": "GBP", "email": "jdoe@rapyd.net", "identification\_type": "passport", "identification\_value": "\*\*\*\*\*\*\*\*\*", "bank\_name": "gb\_local\_bank", "bic\_swift": "IIIGGB22", "sort\_code": "123225", "ach\_code": "123456789" }, "fx\_rate": 0.79215, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "The funds will be transferred to the provided account details of the beneficiary."\ }\ \]\ }\ \], "ewallets": \[\ {\ "ewallet\_id": "ewallet\_9bc4ba65f0c4bf9f86d843920525e3a5",\ "amount": 281.51,\ "percent": 100\ }\ \], "metadata": { "merchant\_defined": true }, "description": "Payout - Bank Transfer: Beneficiary/Sender objects", "created\_at": 1708525206, "payout\_fees": null, "expiration": null, "merchant\_reference\_id": "GHY-1YU-HUJ-POI", "paid\_at": null, "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 0, "statement\_descriptor": "GHY\* Limited Access 800-123-4567", "gc\_error\_code": "NOT\_IMPLEMENTED", "batch\_file": null, "estimated\_time\_of\_arrival": null } } In this section: Most stringent compliance level under the Payment Card Industry Data Security Standard ([PCI-DSS](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_dss) ). Clients with Level 1 clearance can handle personal identifying information for cards, such as card number, expiration date and cardholder name. The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. A numeric identifier for financial institutions. It appears as the first four to six digits on a payment card. Search results -------------- No results found * [Prev](payout.html) * [Next](create-payout.html#idp352240) --- # Confirm Payout with FX [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Disburse](rapyd-disburse-368669.html) * [Payout](payout.html) * Confirm Payout with FX * [Prev](create-mass-payout.html#idp353253) * [Next](confirm-payout-with-fx.html#idp353394) ##### Confirm Payout with FX Confirm the exchange rate of a payout that involves foreign exchange. Relevant when the payout was created with `confirm_automatically` set to **false** (default). To confirm creation of the payout with the FX rate included in the response to [Create Payout](create-payout.html "Create Payout") , you must run this method within a short time. The exact amount of time varies from payout method to payout method. This method triggers the [Payout Created Webhook](payout-created-webhook.html "Payout Created Webhook") . This webhook contains the same information as the response. [###### Parameters](#idp353398_body) [###### Request Path Parameters](#idp353400_body) * * payout * ID of the payout. String starting with **payout\_**. [###### Request Header Parameters](#idp353410_body) [###### Response Parameters](#idp353470_body) * * .NET * using System; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string payout = "payout\_a8f528fc070c62ae6ea2025d3fb6d041"; string result = RapydApiRequestSample.Utilities.MakeRequest("POST", $"/v1/payouts/confirm/{payout}"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = {}; const result = await makeRequest( 'POST', '/v1/payouts/confirm/payout\_a8f528fc070c62ae6ea2025d3fb6d041', body ); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $object = make\_request('post', '/v1/payouts/confirm/payout\_a8f528fc070c62ae6ea2025d3fb6d041'); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request payout = 'payout\_a8f528fc070c62ae6ea2025d3fb6d041' results = make\_request(method='post', path=f'/v1/payouts/confirm/{payout}') pprint(results) * /v1/payouts/confirm/:payout * Confirm Payout with FX * curl -X post https://sandboxapi.rapyd.net/v1/payouts/confirm/payout\_a6f557970faa9bf75ef34b69c991da57 -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "7b23e8c6-220e-4900-9553-350b996ce410" }, "data": { "id": "payout\_a6f557970faa9bf75ef34b69c991da57", "payout\_type": "bank", "payout\_method\_type": "mx\_abc\_capital\_bank", "amount": 2000, "payout\_currency": "MXN", "sender\_amount": 102.45, "sender\_currency": "USD", "status": "Created", "sender\_country": "US", "sender": { "id": "sender\_94e84ba869e20da70be5b0c0027c889d", "country": "US", "entity\_type": "company", "address": "address 2", "name": "Rapyd", "postcode": "3333", "city": "Amsterdam", "phone\_number": "19019044444", "company\_name": "Rapyd", "currency": "USD", "identification\_value": "unc\_num\_123333", "province": "Amsterdam", "occupation": "Ridesharing" }, "beneficiary\_country": "MX", "beneficiary": { "id": "beneficiary\_d75798c2168f04a552542880ba772966", "last\_name": "Doe", "first\_name": "Jane", "country": "MX", "entity\_type": "individual", "name": "Jane Doe", "currency": "MXN", "bank\_name": "Jane Doe", "category": "bank" }, "fx\_rate": 19.522119, "instructions": { "name": "instructions", "steps": \[\ {\ "step1": "The funds will be transferred to the provided account details of the beneficiary ."\ }\ \] }, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_4f1757749b8858160274e6db49f78ff3",\ "amount": 102.45,\ "percent": 100\ }\ \], "metadata": { "merchant\_defined": true }, "description": "FX with confirmation", "created\_at": 1607941192, "payout\_fees": null, "expiration": null, "merchant\_reference\_id": "", "paid\_at": null, "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 0, "statement\_descriptor": "RIDE MX payout monthly" } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. A numeric identifier for financial institutions. It appears as the first four to six digits on a payment card. Search results -------------- No results found * [Prev](create-mass-payout.html#idp353253) * [Next](confirm-payout-with-fx.html#idp353394) --- # Creating a Rapyd Wallet [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Wallet](rapyd-wallet.html) * Creating a Rapyd Wallet * [Prev](rapyd-wallet.html#idp244034) * [Next](creating-a-rapyd-wallet.html#idp244047) #### Creating a Rapyd Wallet Build a powerful wallet architecture. | `Enterprise` A Rapyd Wallet is a place to hold funds as you accept payments, fund payouts and issue cards. Rapyd enables clients to issue wallets to consumers and businesses to manage the flow of funds in and out of their ecosystem. Wallets issued for your business customers will use `type: company`. A business can allow more than one contact linked to a wallet. Wallets issued for your consumers will use `type: person`. A personal wallet only allows one contact per wallet. [##### Creating a Rapyd Wallet Workflow](#idp244047_body) ![creating-a-wallet.jpg](image/16763ca3a8cdbe.jpg) 1. You ask the customer for their information 2. The customer provides their contact information. 3. Your website back end asks Rapyd to create a wallet for the customer 4. Rapyd returns with a personal wallet and sends you a [webhook](webhooks.html "Webhooks") . 5. You begin the process to verify the customer through [Identity Verification](identity-verification.html "Identity Verification") . ### Next Steps: Verify Identity You will need to verify the customer's identity through the required documents relevant to the customer's country as described in [Identity Verification](identity-verification.html "Identity Verification") . [##### Rapyd Wallet Message Sequences](#idp244069_body) The message sequence diagrams below describe how information is exchanged between Rapyd, the merchant, and the merchant's customers. Create Wallet ![create-wallet-message-sequence.svg](image/16763ca3a96613.svg) [##### How Creating a Rapyd Wallet Works](#idp244076_body) [###### Create a Rapyd Wallet Request](#idp244078_body) To create a Rapyd Wallet, you'll use [Create Wallet](create-wallet.html "Create Wallet") with the following parameters: Description of Parameters | | | | --- | --- | | Body Parameter | Description | | contact | Describes details about the wallet contacts. Array of objects. | | email | Email address of the wallet owner. | | ewallet\_reference\_id | Rapyd Wallet ID defined by the customer or end user. Must be unique. | | first\_name | First name of the Rapyd Wallet owner. | | last\_name | Family name of the Rapyd Wallet owner. | | metadata | A JSON object defined by the client. | | type | Type of wallet: company or person. Default is person. | * * Request * { "first\_name": "Samson", "last\_name": "Smith", "email": "", "ewallet\_reference\_id": "Samson-Smith-09232021", "metadata": { "merchant\_defined": true }, "phone\_number": "5555555555", "type": "person", "contact": { "phone\_number": "+14155551311", "email": "samson@rapyd.net", "first\_name": "Samson", "last\_name": "Smith", "mothers\_name": "Jane Smith", "contact\_type": "personal", "address": { "name": "Samson Smith", "line\_1": "123 Main Street", "line\_2": "", "line\_3": "", "city": "Anytown", "state": "NY", "country": "US", "zip": "12345", "phone\_number": "+14155551111", "metadata": {}, "canton": "", "district": "" }, "identification\_type": "PA", "identification\_number": "1234567890", "date\_of\_birth": "11/22/2000", "country": "US", "nationality": "US", "metadata": { "merchant\_defined": true } } } The `data` section of this request shows a type of wallet that can be created. There are only three types of wallets: person, company, and client. The wallet object is described with the following parameters: * The `phone_number` is **5555555555**. * The `ewallet_reference_id` is **Samson-Smith-09232021**. * The `contact``first_name` and `last_name` is **Samson****Smith**. [###### Create Wallet Response](#idp244154_body) * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "466d421d-d20e-4d4b-8702-a64d7995b707" }, "data": { "phone\_number": "5555555555, "email": null, "first\_name": "Samson", "last\_name": "Smith", "id": "ewallet\_54d53f5dd6dbb23d74c1f9807603180c", "status": "ACT", "accounts": \[\], "verification\_status": "not verified", "type": "person", "metadata": { "merchant\_defined": true }, "ewallet\_reference\_id": "Samson-Smith-10272021", "category": null, "contacts": { "data": \[\ {\ "id": "cont\_590315fa4e0c08357e794284fac95bdd",\ "first\_name": "Samson",\ "last\_name": "Smith",\ "middle\_name": "",\ "second\_last\_name": "",\ "gender": "not\_applicable",\ "marital\_status": "not\_applicable",\ "house\_type": "",\ "contact\_type": "personal",\ "phone\_number": "+14155551311",\ "email": "samson@rapyd.net",\ "identification\_type": "PA",\ "identification\_number": "1234567890",\ "issued\_card\_data": {\ "preferred\_name": "",\ "transaction\_permissions": "",\ "role\_in\_company": ""\ },\ "date\_of\_birth": "2000-11-22",\ "country": "US",\ "nationality": "US",\ "address": {\ "id": "address\_6f2e5e5bcf528b1c629361c9c68d5589",\ "name": "Samson Smith",\ "line\_1": "123 Main Street",\ "line\_2": "",\ "line\_3": "",\ "city": "Anytown",\ "state": "NY",\ "country": "US",\ "zip": "12345",\ "phone\_number": "+14155551111",\ "metadata": {},\ "canton": "",\ "district": "",\ "created\_at": 1635375280\ },\ "ewallet": "ewallet\_54d53f5dd6dbb23d74c1f9807603180c",\ "created\_at": 1635375280,\ "metadata": {\ "merchant\_defined": true\ },\ "business\_details": null,\ "compliance\_profile": 0,\ "verification\_status": "not verified",\ "send\_notifications": false,\ "mothers\_name": "Jane Smith"\ }\ \], "has\_more": false, "total\_count": 1, "url": "/v1/ewallets/ewallet\_54d53f5dd6dbb23d74c1f9807603180c/contacts" } } } The `data` section of this request shows the ewallet that was created. * The `contact` object id cont\_590315fa4e0c08357e794284fac95bdd and Samson Smith. FIelds are describe under [Wallet Contact Object](wallet-contact-365061.html "Wallet Contact") . * The ewallet id is ewallet\_54d53f5dd6dbb23d74c1f9807603180c In this section: Search results -------------- No results found * [Prev](rapyd-wallet.html#idp244034) * [Next](creating-a-rapyd-wallet.html#idp244047) --- # Create Payment [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Payment](payment.html) * Create Payment * [Prev](payment.html) * [Next](create-payment.html#idp270829) ##### Create Payment Create a payment to collect money into a Rapyd Wallet. Use this method in the following situations: * To collect money immediately for a one-time charge. * To fund one or more Rapyd Wallets. * To replace a failed payment in a group payment. You can replace all or part of the portion that failed. If the `payment_method` is not specified, Rapyd collects the funds from the `default_payment_method` of the `customer` object. The default payment method must be tokenizable. For card payments, Rapyd saves the card payment method to the customer if you set `save_payment_method` to **true**. If you do not want Rapyd to save the card payment method to the customer, set `save_payment_method` to **false**. The default is **false**. When Rapyd does not save the card payment method to the customer, the values of `payment_method` and `payment_method_data.id` in the response are **null**. In production, you cannot save a card payment method for a telephone order. Some card payment methods require `payment_method.fields.recurrence_type` to specify the primary intended purpose of a saved payment method. See [Saving a European Card While Creating a Payment](saving-a-european-card-while-creating-a-payment.html "Saving a European Card While Creating a Payment") . One of the following values: * **recurring** - Regular payments for an indefinite period. * **installment** - Regular payments for a defined number of payment cycles. * **unscheduled** - Individual unrelated payments. This is the default. The payment method might also require `initiation_type` for each payment. See [Creating a Payment with a European Card on File](creating-a-payment-with-a-european-card-on-file.html "Creating a Payment with a European Card on File") . This method triggers [Payment Succeeded Webhook](payment-succeeded-webhook.html "Payment Succeeded Webhook") . This webhook contains the same information as the response. If the action of a third party is not required, the [Payment Completed Webhook](payment-completed-webhook.html "Payment Completed Webhook") is also triggered. The following asynchronous webhooks provide information about later changes to the `payment` object: * [Escrow Payment Released Webhook](escrow-payment-released-webhook.html "Escrow Payment Released Webhook") * [Payment Expired Webhook](payment-expired-webhook.html "Payment Expired Webhook") * [Payment Failed Webhook](payment-failed-webhook.html "Payment Failed Webhook") In the sandbox: * To simulate completion of a payment method that requires the action of a third party, you must run [Complete Payment](complete-payment.html "Complete Payment") . * To simulate completion of a payment that requires 3DS authentication, see [Simulating 3DS Authentication](simulating-3ds-authentication.html "Simulating 3DS Authentication") . Relevant where the payment method type is **card**. * To simulate a cardholder dispute, create a payment using a specific, reserved card number. Set `payment_method_options.3d_required` to **false**. See [Simulating Cardholder Disputes](simulating-cardholder-disputes.html "Simulating Cardholder Disputes") . ### Note * Only clients with [PCI](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pci "Payment Card Industry") certification can handle personal identifying information for cards. Clients that are not PCI-certified can use Rapyd Checkout to collect money from a card. See [Checkout Page](checkout-page.html "Checkout Page") . * If you create a payment that is split by amount and the total of the identified wallets is less than the amount of the payment, the remainder is paid into the client wallet. * For a split payment, you must choose `amount` for all wallets or `percentage` for all wallets. You cannot mix these options. * Before you create a payment with a tokenized payment method, verify that the value of `is_tokenizable` is **true**. * When you create a card payment, a zero-amount transaction is processed. * Transactions with 3DS authentication must be authenticated within 15 minutes. * Requests for very small amounts are rounded down to zero, are not processed, and throw an error. This can occur in payments that are split among two or more wallets, or in payments with FX. * Use this method to create a network reference ID for a recurring card payment. You also can create a network reference ID when you add a payment method to a customer. See [Add Payment Method to Customer](add-payment-method-to-customer.html "Add Payment Method to Customer") . * A SEPA (Single Euro Payments Area) bank transfer can be disputed for 13 months after the payment is created. Account funding transaction (AFT). You can transfer funds from a card directly to the cardholder’s own wallet. You can also transfer the funds indirectly through the **company** wallet of a licensed business entity that manages the customer’s wallet. The business forwards the funds to the customer’s wallet. Relevant to payment method types that support this feature. * Set `payment_method_options.aft` to **true**. * `complete_payment_url` and `error_payment_url` are required. * To transfer funds directly, set the ID of the cardholder’s **person** wallet. The wallet contact must include first name, last name, country, and the `address` object, which must contain street (`line_1`), city, and zip. The cardholder’s first name, last name, and country must match the values of the wallet contact. * To transfer funds indirectly, set the ID of the `customer`. The `address` in the `customer` profile must include phone number, street (`line_1`), city, country, and zip. * The AFT feature is in beta testing. To enable this feature, contact [Rapyd Client Support](https://support.rapyd.net) . Cryptocurrency transactions. The purchase of cryptocurrency is considered a high risk activity by card networks. For cryptocurrency transactions, card networks require additional monitoring and risk controls to improve security and compliance with anti-money laundering (AML) regulations. Each cryptocurrency purchase transaction in Rapyd requires a special indicator and additional required fields related to the cardholder. These requirements apply both when cryptocurrency is purchased directly and when the wallet is topped up for later purchase of cryptocurrency. Relevant to payment method types that support this feature. * Set `payment_method_options.special_condition_indicator` to **cryptocurrency**. * `complete_payment_url` and `error_payment_url` are required. * To transfer cryptocurrency directly to the cardholder’s own wallet, set the ID of the cardholder’s **person** wallet. The wallet contact must include first name, last name, country, and the `address` object, which must contain street (`line_1`), city, and zip. The cardholder’s first name, last name, and country must match the values of the wallet contact. * To transfer cryptocurrency indirectly through the **company** wallet of a licensed business entity that manages the customer’s wallet, set the ID of the `customer`. The `address` in the `customer` profile must include phone number, street (`line_1`), city, country, and zip. The business forwards the cryptocurrency to the customer’s wallet. * The cryptocurrency feature is in beta testing. To enable this feature, contact [Rapyd Client Support](https://support.rapyd.net) . **Prerequisites** * You must run [Get Payment Method Required Fields](get-payment-method-required-fields.html "Get Payment Method Required Fields") before creating a payment. * **Payment Method** - Required for using a payment method on file. See [Add Payment Method to Customer](add-payment-method-to-customer.html "Add Payment Method to Customer") and [Create Card Token](create-card-token.html "Create Card Token") . * **Customer** - Required for using a customer’s default payment method on file. * **Wallet** - Required for directing the collected funds to a merchant or customer. See [Create Wallet](create-wallet.html "Create Wallet") . [###### Parameters](#idp270833_body) [###### Request Header Parameters](#idp270835_body) [###### Request Body Parameters](#idp270895_body) * * amount * The amount of the payment, in units of the currency defined in `currency`. Decimal, including the correct number of decimal places for the currency exponent, as defined in ISO 4217:2015. To verify a card, set to **0**. * * currency * In transactions without FX, defines the currency of the transaction. Three-letter ISO 4217 code. In FX transactions: * When `fixed_side` is **buy**, it is the currency received in the Rapyd wallet. * When `fixed_side` is **sell**, it is the currency charged to the buyer. See also `fixed_side` and `requested_currency` fields. * * customer * String or object describing the customer. Required if `payment_method` is blank. * **string** - ID of the customer who is making the payment. String starting with **cus\_**. * **object** - Contains all fields required for the customer. See [Create Customer](create-customer.html "Create Customer") . * * description * Description of the payment transaction. * * escrow * Determines whether the payment is held in escrow for later release. false * * escrow\_release\_days * Determines the number of days after creation of the payment that funds are released from escrow. Funds are released at 5:00 pm GMT on the day indicated. Integer, range: 1-90. 90 * * fixed\_side * Indicates whether the FX rate is fixed for the buy side (seller) or for the sell side (buyer). * **buy** - The currency that the Rapyd Wallet receives for goods or services. Fixed side buy relates to the seller (merchant) funds. For example, a US-based merchant wants to charge 100 USD. The buyer (customer) pays the amount in MXN that converts to 100 USD. * **sell** - The currency that the buyer is charged for purchasing goods or services. Fixed side sell relates to the buyer (customer) funds. For example, a US-based merchant wants to charge a buyer 2,000 MXN and will accept whatever amount in USD that is converted from 2,000 MXN. buy See also `requested_currency`. * * group\_payment * ID of the group payment. String starting with **gp\_**. Relevant when the payment is part of a group payment. * * initiation\_type * Indicates how the transaction was initiated. One of the following: * **customer\_present** - The transaction was initiated by the customer. * **installment** - The transaction was initiated by a subscription where there is a fixed number of installments. * **moto** - The transaction was initiated by the merchant or Rapyd client for a mail order or telephone order. ### Note To enable **moto** in the production environment, contact [Rapyd Client Support](https://support.rapyd.net) . * **recurring** - The transaction was initiated by a subscription where charges are made at regular intervals and there is no end date. * **unscheduled** - The transaction is a top-up transaction that was previously authorized by the cardholder and was initiated by the merchant or Rapyd client. customer\_present * * requested\_currency * Currency for one side of an FX transaction. Three-letter ISO 4217 code. * When `fixed_side` is **sell**, it is the currency received in the Rapyd Wallet. * When `fixed_side` is **buy**, it is the currency charged to the buyer (customer). Relevant to payments with FX. See also `currency` and `fixed_side` fields. * * save\_payment\_method * Relevant to card payment methods when the request includes full card details. Determines whether Rapyd saves the payment method for future use. * **true** - Save the payment method for future use. * **false** - Do not save the payment method. false [###### Response Parameters](#idp271413_body) * /v1/payments * Payment by payment method ID * curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 101, "currency": "USD", "description": "Payment method token", "payment\_method": "other\_7f991f72a4c14c5cd79627ebc21241de", "ewallets": \[{\ "ewallet": "ewallet\_1290eef66d0b84ece177a3f5bd8fb0c8",\ "percentage": 100\ }\ \], "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "798fe30d-e3a6-4b1a-8fd6-3210aa6f8001" }, "data": { "id": "payment\_5c72dce7526e486e0fac5a2a4cfaf9e1", "amount": 0, "original\_amount": 101, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": "ACT", "description": "Payment method token", "merchant\_reference\_id": "", "customer\_token": "cus\_261e500e1d0217bcac3d2e3345d4a7c3", "payment\_method": "other\_7f991f72a4c14c5cd79627ebc21241de", "payment\_method\_data": { "id": "other\_7f991f72a4c14c5cd79627ebc21241de", "type": "us\_stopngo\_cash", "category": "cash", "metadata": { "merchant\_defined": true }, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable" }, "auth\_code": null, "expiration": 1664790865, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1663581265, "metadata": { "merchant\_defined": true }, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": { "code": "451296602858399965035514290412" }, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "Please visit any one of your nearest participating Stop-N-Go stores.",\ "step2": "Present your barcode to be scanned at the register and the exact $ amount for which the barcode was generated.",\ "step3": "Provide cash to complete your payment.",\ "step4": "Keep your receipt as proof of payment."\ }\ \]\ }\ \], "ewallet\_id": "ewallet\_1290eef66d0b84ece177a3f5bd8fb0c8", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_1290eef66d0b84ece177a3f5bd8fb0c8",\ "amount": 101,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "us\_stopngo\_cash", "payment\_method\_type\_category": "cash", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "pending\_confirmation", "error\_code": "", "remitter\_information": {} } } * Default payment method * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 45.00, "currency": "USD", "customer": "cus\_e02329423b13bcd88a2c558fadfd1de9", "description": "Payment by customer's default payment method" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "1fce9528-9aa2-45b0-8d01-893c407aeac8" }, "data": { "id": "payment\_8f2a9e81664b5a4f6725353fd05e8116", "amount": 0, "original\_amount": 45, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": "ACT", "description": "Payment by customer's default payment method", "merchant\_reference\_id": "", "customer\_token": "cus\_e02329423b13bcd88a2c558fadfd1de9", "payment\_method": "other\_7f991f72a4c14c5cd79627ebc21241de", "payment\_method\_data": { "id": "other\_7f991f72a4c14c5cd79627ebc21241de", "type": "us\_stopngo\_cash", "category": "cash", "metadata": { "merchant\_defined": "Prime customer" }, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable" }, "auth\_code": null, "expiration": 1664793698, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1663584098, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": { "code": "824169043858275843928850407863" }, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "Please visit any one of your nearest participating Stop-N-Go stores.",\ "step2": "Present your barcode to be scanned at the register and the exact $ amount for which the barcode was generated.",\ "step3": "Provide cash to complete your payment.",\ "step4": "Keep your receipt as proof of payment."\ }\ \]\ }\ \], "ewallet\_id": "ewallet\_c1943cfeda5f98247ab117e5d2648861", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_c1943cfeda5f98247ab117e5d2648861",\ "amount": 45,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "us\_stopngo\_cash", "payment\_method\_type\_category": "cash", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "pending\_confirmation", "error\_code": "", "remitter\_information": {} } } * Payment by card * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 10, "payment\_method": { "type": "it\_visa\_card", "fields": { "number": "4111111111111111", "expiration\_month": "12", "expiration\_year": "24", "cvv": "566", "name": "Auto Test" } }, "currency": "USD", "payment\_method\_options": { "3d\_required": true }, "ewallet": "ewallet\_6a6669f4febd8b2eb9c5d77e7161a679", "capture": false, "expiration": 1689859548, "error\_payment\_url": "https://support.rapyd.net/hc/en-us", "complete\_payment\_url": "https://www.rapyd.net", "description": "testing" }' * { { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "c3d1ac9d-139b-4c55-8da4-b1c32cf88fa9" }, { "id": "payment\_56f3eb8ec543a3962ce112b4f03da9ae", "amount": 0, "original\_amount": 10, "is\_partial": false, "currency\_code": "USD", "country\_code": "IT", "status": "ACT", "description": "testing", "merchant\_reference\_id": "", "customer\_token": "cus\_0335a29669a3f4337317d6e1441df763", "payment\_method": "", "payment\_method\_data": { "id": "", "type": "it\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "3d\_verification", "name": "Auto Test", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": "CREDIT", "brand": "VISA", "level": null, "issuer": "JPMORGAN CHASE BANK, N.A.", "country": "US", "bin\_number": "411111" }, "expiration\_year": "24", "expiration\_month": "12", "fingerprint\_token": "ocfp\_11ECFC396977BB4E81220EC01B2F2B1B" }, "auth\_code": null, "expiration": 1689859548, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "https://qacheckout.rapyd.net/3ds-payment?token=payment\_56f3eb8ec543a3962ce112b4f03da9ae", "complete\_payment\_url": "https://www.rapyd.net", "error\_payment\_url": "https://support.rapyd.net/hc/en-us", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "card\_tokenization\_with", "transaction\_id": "", "created\_at": 1689859010, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\], "ewallet\_id": "ewallet\_6a6669f4febd8b2eb9c5d77e7161a679", "ewallets": \[{\ "ewallet\_id": "ewallet\_6a6669f4febd8b2eb9c5d77e7161a679",\ "amount": 10,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": { "3d\_required": true }, "payment\_method\_type": "it\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "3d\_verification", "error\_code": "", "remitter\_information": {}, "save\_payment\_method": true } } * Payment by card - save payment method * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 10, "currency": "GBP", "capture": true, "description": "Save payment method", "payment\_method": { "type": "gb\_visa\_card", "fields": { "recurrence\_type": "installment", "name": "John Doe", "number": "4111111111111111", "expiration\_month": "05", "expiration\_year": "25", "cvv": "111" } }, "payment\_method\_options": {}, "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net", "customer": "cus\_b7b470e9fa4c16362cea2e8ff6b61f08", "save\_payment\_method": true, "initiation\_type": "customer\_present", "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "bff27497-fc37-4d33-9c7a-629e667be997" }, "data": { "id": "payment\_dbefc88aacfd2b5af1bc53b0dddb9295", "amount": 10, "original\_amount": 10, "is\_partial": false, "currency\_code": "GBP", "country\_code": "GB", "status": "CLO", "description": "Save payment method", "merchant\_reference\_id": "", "customer\_token": "cus\_b7b470e9fa4c16362cea2e8ff6b61f08", "payment\_method": "card\_0d4b0a0439d31144d261d766e4e53962", "payment\_method\_data": { "id": "card\_0d4b0a0439d31144d261d766e4e53962", "type": "gb\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": "CREDIT", "brand": "VISA", "level": null, "issuer": "JPMORGAN CHASE BANK, N.A.", "country": "US", "bin\_number": "411111" }, "expiration\_year": "25", "recurrence\_type": "installment", "expiration\_month": "05", "fingerprint\_token": "ocfp\_99795b7a947e95d98c337bcc3aa0bd72" }, "auth\_code": null, "expiration": 1707742560, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "N/A", "transaction\_id": "", "created\_at": 1707137760, "metadata": { "merchant\_defined": true }, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1707137761, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\], "ewallet\_id": "ewallet\_bcad4157ffae36fd13e44c57a4dcafeb", "ewallets": \[{\ "ewallet\_id": "ewallet\_bcad4157ffae36fd13e44c57a4dcafeb",\ "amount": 10,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "gb\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "not\_applicable", "error\_code": "", "remitter\_information": {}, "save\_payment\_method": true } } * Payment by card - Use saved payment method * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 1000, "currency": "ISK", "capture": true, "description": "Use saved payment method", "payment\_method": "card\_117e7a8d31c6ce3157444508307665db", "customer": "cus\_aef17346c688529788a0d327fa5a343d", "initiation\_type": "recurring", "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net", "save\_payment\_method": false } * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "7b5d53a4-dcea-473b-b3b2-d5699ddab74d" }, "data": { "id": "payment\_dc72b4c6576f3c18ee6de18ae03da469", "amount": 1000, "original\_amount": 1000, "is\_partial": false, "currency\_code": "ISK", "country\_code": "IS", "status": "CLO", "description": "Use saved payment method", "merchant\_reference\_id": "", "customer\_token": "cus\_aef17346c688529788a0d327fa5a343d", "payment\_method": "card\_117e7a8d31c6ce3157444508307665db", "payment\_method\_data": { "id": "card\_117e7a8d31c6ce3157444508307665db", "type": "is\_valitor\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "name": "John Doe", "last4": "1111", "acs\_check": "pass", "cvv\_check": "unchecked", "bin\_details": { "type": "CREDIT", "brand": "MASTERCARD", "level": "ACQUIRER ONLY", "issuer": "MASTERCARD", "country": "US", "bin\_number": "411111" }, "expiration\_year": "25", "expiration\_month": "05", "fingerprint\_token": "ocfp\_ffb07b154b9e552b0573b2f3be0c3f4b", "network\_reference\_id": "ABC6700610516" }, "auth\_code": "831311", "expiration": 1716460138, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1715855338, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1715855340, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\], "ewallet\_id": "ewallet\_6f288d7c178f545ebb56be8990ff0ff2", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_6f288d7c178f545ebb56be8990ff0ff2",\ "amount": 1000,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "is\_valitor\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "recurring", "mid": "mid\_1ab3788e7e7e423ea990a48073d8b2b1", "next\_action": "not\_applicable", "error\_code": "", "remitter\_information": {}, "save\_payment\_method": false } } * Payment by card - do not save payment method * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 10, "currency": "EUR", "capture": true, "description": "Card not saved", "customer": "cus\_5bee14584a78638ba717e746be62ee01", "payment\_method": { "type": "gb\_visa\_card", "fields": { "name": "John Doe", "number": "4111111111111111", "expiration\_month": "05", "expiration\_year": "25", "cvv": "111" } }, "payment\_method\_options": {}, "save\_payment\_method": false, "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "63184b1f-d516-4701-9944-25269ee312db" }, "data": { "id": "payment\_a19b9f72f135ada8a6e5a4cdd4ec1a56", "amount": 10, "original\_amount": 10, "is\_partial": false, "currency\_code": "EUR", "country\_code": "GB", "status": "CLO", "description": "Card not saved", "merchant\_reference\_id": "", "customer\_token": "cus\_5bee14584a78638ba717e746be62ee01", "payment\_method": null, "payment\_method\_data": { "id": null, "type": "gb\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": "DEBIT", "brand": "VISA", "level": "CREDIT", "issuer": "JPMORGAN CHASE BANK, N.A.", "country": "US", "bin\_number": "411111" }, "expiration\_year": "25", "expiration\_month": "05", "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467", "network\_reference\_id": "123456" }, "auth\_code": null, "expiration": 1716793533, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1716188733, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1716188733, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\], "ewallet\_id": "ewallet\_c1943cfeda5f98247ab117e5d2648861", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_c1943cfeda5f98247ab117e5d2648861",\ "amount": 10,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "gb\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "not\_applicable", "error\_code": "", "remitter\_information": {}, "save\_payment\_method": false } } * Payment by card - authorization only * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 10, "currency": "EUR", "capture": false, "description": "payment by card", "customer": "cus\_5bee14584a78638ba717e746be62ee01", "payment\_method": { "type": "gb\_visa\_card", "fields": { "name": "John Doe", "number": "4111111111111111", "expiration\_month": "05", "expiration\_year": "25", "cvv": "111" } }, "payment\_method\_options": {}, "save\_payment\_method": true, "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "137ce58a-6ea1-4594-9fb8-79005966fcd3" }, "data": { "id": "payment\_a1f8b993484b7d92c6b1f96f2f59da0a", "amount": 0, "original\_amount": 10, "is\_partial": false, "currency\_code": "EUR", "country\_code": "GB", "status": "ACT", "description": "payment by card", "merchant\_reference\_id": "", "customer\_token": "cus\_5bee14584a78638ba717e746be62ee01", "payment\_method": "card\_f8fd4586847b28955d19b8af57e39e75", "payment\_method\_data": { "id": "card\_f8fd4586847b28955d19b8af57e39e75", "type": "gb\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": null, "brand": null, "level": null, "country": null, "bin\_number": "411111" }, "expiration\_year": "25", "expiration\_month": "05", "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467", "network\_reference\_id": "123456" }, "auth\_code": null, "expiration": 1676469016, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1675864216, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\], "ewallet\_id": "ewallet\_c1943cfeda5f98247ab117e5d2648861", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_c1943cfeda5f98247ab117e5d2648861",\ "amount": 10,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "gb\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "pending\_capture", "error\_code": "", "remitter\_information": {}, "save\_payment\_method": true } } * Payment by card - CVV required on subsequent payment * curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d ' { "amount": 100, "currency": "ISK", "payment\_method": "card\_679681841478c99eaa51f85f17eda5d1", "customer": "cus\_1a85aa5efc5054a34e7cf5100ae08a55", "payment\_method\_options": { "cvv": "123" }, "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net", "metadata": { "merchant\_defined": "created" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "09e45923-a2c8-4eca-8d98-e1e6ab7122ab" }, "data": { "id": "payment\_784174fe67814bacc860097c30869238", "amount": 100, "original\_amount": 100, "is\_partial": false, "currency\_code": "ISK", "country\_code": "IS", "status": "CLO", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_1a85aa5efc5054a34e7cf5100ae08a55", "payment\_method": "card\_679681841478c99eaa51f85f17eda5d1", "payment\_method\_data": { "id": "card\_679681841478c99eaa51f85f17eda5d1", "type": "is\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "name": "Auto Test", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": "DEBIT", "brand": "VISA", "level": "CREDIT", "issuer": "JPMORGAN CHASE BANK, N.A.", "country": "US", "bin\_number": "411111" }, "expiration\_year": "24", "expiration\_month": "12", "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467", "network\_reference\_id": 260750 }, "auth\_code": null, "expiration": 1720436807, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1719832007, "metadata": { "merchant\_defined": "created" }, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1719832007, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": ""\ }\ \]\ }\ \], "ewallet\_id": "ewallet\_c1943cfeda5f98247ab117e5d2648861", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_c1943cfeda5f98247ab117e5d2648861",\ "amount": 100,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "is\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "not\_applicable", "error\_code": "", "remitter\_information": {}, "save\_payment\_method": false } } * Verify card - amount set to zero * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 0, "currency": "EUR", "capture": false, "description": "Verify card", "customer": "cus\_5bee14584a78638ba717e746be62ee01", "payment\_method": { "type": "gb\_visa\_card", "fields": { "name": "John Doe", "number": "4111111111111111", "expiration\_month": "05", "expiration\_year": "25", "cvv": "111" } }, "payment\_method\_options": {}, "save\_payment\_method": true, "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "47e3bb96-5c48-4653-887e-40609865f6b6" }, "data": { "id": "payment\_6b7d7430e86628751ac86a775a27b4a2", "amount": 0, "original\_amount": 0, "is\_partial": false, "currency\_code": "EUR", "country\_code": "GB", "status": "ACT", "description": "Verify card", "merchant\_reference\_id": "", "customer\_token": "cus\_5bee14584a78638ba717e746be62ee01", "payment\_method": "card\_e101960b0bbc463adb024317109ef464", "payment\_method\_data": { "id": "card\_e101960b0bbc463adb024317109ef464", "type": "gb\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "3d\_verification", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": null, "brand": null, "level": null, "country": null, "bin\_number": "411111" }, "expiration\_year": "25", "expiration\_month": "05", "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467", "network\_reference\_id": 834382 }, "auth\_code": null, "expiration": 1676470543, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "https://sandboxcheckout.rapyd.net/3ds-payment?token=payment\_6b7d7430e86628751ac86a775a27b4a2", "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1675865743, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\], "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": "gb\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "3d\_verification", "error\_code": "", "remitter\_information": {} "save\_payment\_method": true } } * Cancelable payment * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 101, "currency": "PHP", "description": "Cancelable payment", "payment\_method": { "type": "ph\_bankatmotc\_cash", "fields": {} }, "ewallets": \[\ {\ "ewallet": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4",\ "percentage": 100\ }\ \], "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "fc585cf4-8f73-42d1-afb6-4882b3781d70" }, "data": { "id": "payment\_00778be57b9087180596678817973e61", "amount": 0, "original\_amount": 101, "is\_partial": false, "currency\_code": "PHP", "country\_code": "PH", "status": "ACT", "description": "Cancelable payment", "merchant\_reference\_id": "", "customer\_token": "cus\_907dc0e443fde54d2bbbdde8915a3417", "payment\_method": "other\_cb92f8c4370e36cb1b9f75a30b5ebe61", "payment\_method\_data": { "id": "other\_cb92f8c4370e36cb1b9f75a30b5ebe61", "type": "ph\_bankatmotc\_cash", "category": "cash", "metadata": {}, "image": "", "authentication\_url": "", "webhook\_url": "", "supporting\_documentation": "" }, "expiration": 1623073515, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Rapyd", "transaction\_id": "", "created\_at": 1621863915, "metadata": { "merchant\_defined": true }, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": { "code": "8765433177018479" }, "instructions": \[\], "ewallet\_id": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4",\ "amount": 101,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "ph\_bankatmotc\_cash", "payment\_method\_type\_category": "cash", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "pending\_confirmation" } } * Payment by cash * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 10, "currency": "USD", "payment\_method": { "type": "us\_duanereade\_cash", "fields": { "first\_name": "John", "last\_name": "Doe" } }, "ewallets": \[\ {\ "ewallet": "ewallet\_07c869a30f93ef0997a60b7efdd8551b",\ "percentage": 100\ }\ \], "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "1794da93-a720-4020-bde4-c023081bb779" }, "data": { "id": "payment\_2c05c7d32c42c46e17279b09f6800a58", "amount": 0, "original\_amount": 10, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": "ACT", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_925645e7ac6e502f478941aec306808b", "payment\_method": "other\_55a1c0e0115c92730c55ae46b5dcadfd", "payment\_method\_data": { "id": "other\_55a1c0e0115c92730c55ae46b5dcadfd", "type": "us\_duanereade\_cash", "category": "cash", "metadata": {}, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "last\_name": "Doe", "first\_name": "John" }, "auth\_code": null, "expiration": 1705501062, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "N/A", "transaction\_id": "", "created\_at": 1704291462, "metadata": { "merchant\_defined": true }, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": { "code": "8765438184374646" }, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "Please visit any one of your nearest participating Duane Reade® stores.",\ "step2": "Present your barcode to be scanned at the register and the exact $ amount for which the barcode was generated.",\ "step3": "Provide cash to complete your payment.",\ "step4": "Keep your receipt as proof of payment."\ }\ \]\ }\ \], "ewallet\_id": "ewallet\_07c869a30f93ef0997a60b7efdd8551b", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_07c869a30f93ef0997a60b7efdd8551b",\ "amount": 10,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "us\_duanereade\_cash", "payment\_method\_type\_category": "cash", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "pending\_confirmation", "error\_code": "", "remitter\_information": {}, "save\_payment\_method": true } } * Payment by bank transfer * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 100, "currency": "MXN", "description": "Payment by bank transfer", "payment\_method": { "type": "mx\_spei\_bank" }, "ewallets": \[\ {\ "ewallet": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4",\ "percentage": 100\ }\ \], "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "c088d0f5-43b8-462c-9b03-08ca39718318" }, "data": { "id": "payment\_e5f67f64269e79bc27a4e29e24970742", "amount": 0, "original\_amount": 100, "is\_partial": false, "currency\_code": "MXN", "country\_code": "mx", "status": "ACT", "description": "Payment by bank transfer", "merchant\_reference\_id": "", "customer\_token": "cus\_2fc481c596480e0b45f20beb4e7139af", "payment\_method": "other\_7bd131704089d8b8ba867f6ed37457a1", "payment\_method\_data": { "id": "other\_7bd131704089d8b8ba867f6ed37457a1", "type": "mx\_spei\_bank", "category": "bank\_transfer", "metadata": {}, "image": "", "authentication\_url": "", "webhook\_url": "", "supporting\_documentation": "" }, "expiration": 1623073903, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Rapyd", "transaction\_id": "", "created\_at": 1621864303, "metadata": { "merchant\_defined": true }, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": { "payCode": "100723147534680380" }, "textual\_codes": {}, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "Direct the end-user to make payment to the CLABE provided."\ }\ \]\ }\ \], "ewallet\_id": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4",\ "amount": 100,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "mx\_spei\_bank", "payment\_method\_type\_category": "bank\_transfer", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "pending\_confirmation" } } * Payment by bank redirect * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 11, "currency": "AUD", "description": "Payment by bank redirect", "payment\_method": { "type": "au\_melbourne\_bank", "fields": {} }, "capture": null, "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "df021e55-be21-4224-b091-0e561a9be831" }, "data": { "id": "payment\_f9000a7a51888e654151c04e6d62caa4", "amount": 9, "original\_amount": 9, "is\_partial": false, "currency\_code": "EUR", "country\_code": "fi", "status": "CLO", "description": "Payment by bank redirect", "merchant\_reference\_id": "", "customer\_token": "cus\_c25843e1feb5692df6838b64b69f57bc", "payment\_method": "other\_e1c5d34df2125607ca08978929c3dd8f", "payment\_method\_data": { "id": "other\_e1c5d34df2125607ca08978929c3dd8f", "type": "fi\_sepadirectdebit\_bank", "category": "bank\_redirect", "metadata": { "merchant\_defined": true }, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "bic\_swift": "ABCDEFG1234", "account\_last4": "6283", "language": "es" }, "expiration": 1659081611, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Rapyd", "transaction\_id": "", "created\_at": 1653897621, "metadata": { "merchant\_defined": true }, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 1653897625, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": { "name": "instructions", "steps": \[{\ "step1": "The URL can be used for redirecting the user or to forward it to the consumer for signing. This link expires in 60 days or after its first use, whichever comes first."\ }\ \] }, "ewallet\_id": "ewallet\_09d9ea7a1ca0a04b8da327905158dc12", "ewallets": \[{\ "ewallet\_id": "ewallet\_09d9ea7a1ca0a04b8da327905158dc12",\ "amount": 9,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "fi\_sepadirectdebit\_bank", "payment\_method\_type\_category": "bank\_redirect", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "not\_applicable", "error\_code": "", "remitter\_information": {} } } * Payment by local eWallet * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 1000, "currency": "RUB", "payment\_method": { "type": "ru\_qiwimobile\_ewallet", "fields": {} }, "ewallets": \[\ {\ "ewallet": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4",\ "percentage": 100\ }\ \], "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "9fee0430-7032-4c9b-a3c3-4a9163bd67c7" }, "data": { "id": "payment\_bebddc4b4139d5a0f13cdcd4046cf2c1", "amount": 0, "original\_amount": 1000, "is\_partial": false, "currency\_code": "RUB", "country\_code": "ru", "status": "ACT", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_84806e121d2d8d08b30a5f99822243de", "payment\_method": "other\_75b307d4fc3713e5ca87f1434e9c30cc", "payment\_method\_data": { "id": "other\_75b307d4fc3713e5ca87f1434e9c30cc", "type": "ru\_qiwimobile\_ewallet", "category": "ewallet", "metadata": {}, "image": "", "authentication\_url": "", "webhook\_url": "", "supporting\_documentation": "" }, "expiration": 1623074321, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Rapyd", "transaction\_id": "", "created\_at": 1621864721, "metadata": { "merchant\_defined": true }, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": { "code": "paygw\_65d788c95eefe636ab45fff9ae81c38d" }, "instructions": \[\], "ewallet\_id": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4",\ "amount": 1000,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "ru\_qiwimobile\_ewallet", "payment\_method\_type\_category": "ewallet", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "pending\_confirmation" } } * Payment split by amount * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 250, "currency": "USD", "payment\_method": { "type": "us\_debit\_visa\_card", "fields": { "number": "4111111111111111", "expiration\_month": "10", "expiration\_year": "23", "cvv": "123" } }, "description": "Split payment to 2 wallets", "capture": true, "ewallets": \[\ {\ "ewallet": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4",\ "amount": 200\ }, \ {\ "ewallet": "ewallet\_3cd928611934717f283df049a2c7c17e",\ "amount": 50\ }\ \], "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "db7ba1e8-06fd-4756-a065-29afeeedb030" }, "data": { "id": "payment\_c3510bde69b860397cd2c2f22c6be9ce", "amount": 250, "original\_amount": 250, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": "CLO", "description": "Split payment to 2 wallets", "merchant\_reference\_id": "", "customer\_token": "cus\_b1e3cd57eef6cdffb2eeff6492815f06", "payment\_method": "card\_a138f815e322d0651813b62572e8c8ea", "payment\_method\_data": { "id": "card\_a138f815e322d0651813b62572e8c8ea", "type": "us\_debit\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "name": null, "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": null, "brand": null, "level": null, "country": null, "bin\_number": "411111" }, "expiration\_year": "23", "expiration\_month": "10", "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467", "network\_reference\_id": "123456" }, "auth\_code": null, "expiration": 1664198517, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1663593717, "metadata": { "merchant\_defined": true }, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1663593717, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\], "ewallet\_id": null, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4",\ "amount": 200,\ "percent": 80,\ "refunded\_amount": 0\ },\ {\ "ewallet\_id": "ewallet\_3cd928611934717f283df049a2c7c17e",\ "amount": 50,\ "percent": 20,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "us\_debit\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "not\_applicable", "error\_code": "", "remitter\_information": {} } } * Payment split by percentage * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 20.00, "currency": "USD", "payment\_method": { "type": "us\_debit\_visa\_card", "fields": { "number": "4111111111111111", "expiration\_month": "11", "expiration\_year": "23", "cvv": "123", "name": "John Doe" } }, "description": "Split payment example", "ewallets": \[\ {\ "ewallet": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4",\ "percentage": 12.05\ },\ {\ "ewallet": "ewallet\_3801e782955b29955445586a2405a5db",\ "percentage": 25\ },\ {\ "ewallet": "ewallet\_3cd928611934717f283df049a2c7c17e",\ "percentage": null\ }\ \], "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "c26ed4df-4075-4a8d-84d0-45174de12716" }, "data": { "id": "payment\_d82a31cf2d82b379cfb3602b1490e6cd", "amount": 20, "original\_amount": 20, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": "CLO", "description": "Split payment example", "merchant\_reference\_id": "", "customer\_token": "cus\_ceacb689d6e13d200cc99516ba74854e", "payment\_method": "card\_d21748e4504f59900c850579bc7afd4f", "payment\_method\_data": { "id": "card\_d21748e4504f59900c850579bc7afd4f", "type": "us\_debit\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": null, "brand": null, "level": null, "country": null, "bin\_number": "411111" }, "expiration\_year": "23", "expiration\_month": "11", "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467", "network\_reference\_id": "123456" }, "auth\_code": null, "expiration": 1664277244, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1663672444, "metadata": { "merchant\_defined": true }, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1663672445, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\], "ewallet\_id": null, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4",\ "amount": 2.41,\ "percent": 12.05,\ "refunded\_amount": 0\ },\ {\ "ewallet\_id": "ewallet\_3cd928611934717f283df049a2c7c17e",\ "amount": 12.59,\ "percent": 62.95,\ "refunded\_amount": 0\ },\ {\ "ewallet\_id": "ewallet\_3801e782955b29955445586a2405a5db",\ "amount": 5,\ "percent": 25,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "us\_debit\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "not\_applicable", "error\_code": "", "remitter\_information": {} } } * Payment with payment method options * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "payment\_method": { "type": "us\_debit\_visa\_card", "fields": { "number": "4111111111111111", "expiration\_month": "10", "expiration\_year": "23", "cvv": "123", "name": "John Doe" } }, "customer": "cus\_0ab3c4c22ad1b8f47bcf89a5d66b2e98", "payment\_method\_options": { "3d\_required": true }, "metadata": { "merchant\_defined": "created" }, "amount": 23, "ewallet": "ewallet\_3cd928611934717f283df049a2c7c17e", "currency": "USD" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "16d0ce2e-213e-459e-a531-ba32543e4bb6" }, "data": { "id": "payment\_cc7b3500122ba485a3298903931f84d7", "amount": 0, "original\_amount": 23, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": "ACT", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_0ab3c4c22ad1b8f47bcf89a5d66b2e98", "payment\_method": "card\_7dbc3831e93fd3ecc72172969a27b693", "payment\_method\_data": { "id": "card\_7dbc3831e93fd3ecc72172969a27b693", "type": "us\_debit\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "3d\_verification", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": null, "brand": null, "level": null, "country": null, "bin\_number": "411111" }, "expiration\_year": "23", "expiration\_month": "10", "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467" }, "auth\_code": null, "expiration": 1664277328, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "https://sandboxcheckout.rapyd.net/3ds-payment?token=payment\_cc7b3500122ba485a3298903931f84d7", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1663672528, "metadata": { "merchant\_defined": "created" }, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\], "ewallet\_id": "ewallet\_3cd928611934717f283df049a2c7c17e", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_3cd928611934717f283df049a2c7c17e",\ "amount": 23,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": { "3d\_required": true }, "payment\_method\_type": "us\_debit\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "3d\_verification", "error\_code": "", "remitter\_information": {} } } * Create payment with escrow * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 12, "payment\_method": { "type": "mx\_banorte\_bank", "fields": {} }, "currency": "MXN", "error\_payment\_url": "https://error.example.net", "complete\_payment\_url": "https://complete.example.net", "escrow": true, "ewallets": \[\ {\ "ewallet": "ewallet\_93eae39b654ffd2d87a983e7b8e915f4",\ "amount": 12\ }\ \] } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "d21e6b53-355a-4196-86a8-9238136bf687" }, "data": { "id": "payment\_47095e052bbe16080a402af937f377d3", "amount": 0, "original\_amount": 12, "is\_partial": false, "currency\_code": "MXN", "country\_code": "MX", "status": "ACT", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_f9c459ad12ea563475db19e67329f141", "payment\_method": "other\_05b6f2b21b88c56ecb001c8431558a23", "payment\_method\_data": { "id": "other\_05b6f2b21b88c56ecb001c8431558a23", "type": "mx\_banorte\_bank", "category": "bank\_redirect", "metadata": {}, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "bic\_swift": "", "account\_last4": "" }, "expiration": 1654151194, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "http://sboxredirect.rapyd.net/rdct/r?token=BFm1g0K6PUh", "complete\_payment\_url": "https://complete.example.net", "error\_payment\_url": "https://error.example.net", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Rapyd", "transaction\_id": "", "created\_at": 1654064794, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": { "name": "instructions", "steps": \[\ {\ "step1": "You will be redirected to a bank payment page to complete the payment"\ }\ \] }, "ewallet\_id": "ewallet\_93eae39b654ffd2d87a983e7b8e915f4", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_93eae39b654ffd2d87a983e7b8e915f4",\ "amount": 12,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "mx\_banorte\_bank", "payment\_method\_type\_category": "bank\_redirect", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": { "id": "escrow\_df0a95af70e696947706cb59bd53d46f", "payment": "payment\_47095e052bbe16080a402af937f377d3", "currency": "MXN", "amount\_on\_hold": 0, "total\_amount\_released": 0, "status": "pending", "escrow\_release\_days": null, "created\_at": 1654064794, "updated\_at": 1654064794, "last\_payment\_completion": null }, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "pending\_confirmation", "error\_code": "", "remitter\_information": {} } } * Group payment - replace payment * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 30, "currency": "EUR", "group\_payment": "gp\_0fdd0950660ed4eaeb130fa6d0297851", "metadata": { "merchant\_defined": "true" }, "payment\_method": { "type": "de\_girogate\_bank" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "ebcb46df-ab74-4dac-abcd-4f4d876d177e" }, "data": { "id": "payment\_a01bea383e7f81b41e4651bc12db18e9", "amount": 0, "original\_amount": 30, "is\_partial": false, "currency\_code": "EUR", "country\_code": "de", "status": "ACT", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_b41b355084d033d1e2e993ae632472c9", "payment\_method": "other\_4b8d02ce749b38cca5a259a270945c88", "expiration": 0, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "https://sandbox-gateway.safetypay.com/Express4/Checkout/index?TokenID=eaee17d8-c052-4cd5-8e11-d3f048af87bf&ChannelID=ONLINE&CountryID=DEU", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "", "transaction\_id": "", "created\_at": 1574943107, "metadata": { "merchant\_defined": "true" }, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "You will be redirected to a bank payment page to complete the payment"\ }\ \]\ }\ \], "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": "de\_girogate\_bank", "payment\_method\_type\_category": "bank\_redirect", "fx\_rate": "", "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "gp\_0fdd0950660ed4eaeb130fa6d0297851" } } * Funding Wallet with FX - fixed side buy * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 400, "currency": "EUR", "payment\_method": { "type": "mx\_spei\_bank" }, "ewallets": \[\ {\ "ewallet": "ewallet\_3801e782955b29955445586a2405a5db",\ "percentage": 100\ }\ \], "expiration": 1626531390, "fixed\_side": "buy", "metadata": { "merchant\_defined": true }, "requested\_currency": "MXN" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "37a83b8d-7806-495f-9925-20b6f2bc5df7" }, "data": { "id": "payment\_9745a695dcb17354d1769692712da957", "amount": 0, "original\_amount": 10062.99, "is\_partial": false, "currency\_code": "MXN", "country\_code": "mx", "status": "ACT", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_a8ae675d47d861633d902188c01d35f3", "payment\_method": "other\_433780b1e6329525e335c0e04a750db4", "payment\_method\_data": { "id": "other\_433780b1e6329525e335c0e04a750db4", "type": "mx\_spei\_bank", "category": "bank\_transfer", "metadata": {}, "image": "", "authentication\_url": "", "webhook\_url": "", "supporting\_documentation": "" }, "expiration": 1623239909, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Rapyd", "transaction\_id": "", "created\_at": 1622030309, "metadata": { "merchant\_defined": true }, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": { "payCode": "749648645982463715" }, "textual\_codes": {}, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "Direct the end-user to make payment to the CLABE provided."\ }\ \]\ }\ \], "ewallet\_id": "ewallet\_3801e782955b29955445586a2405a5db", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_3801e782955b29955445586a2405a5db",\ "amount": 400,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "mx\_spei\_bank", "payment\_method\_type\_category": "bank\_transfer", "fx\_rate": 0.03974963, "merchant\_requested\_currency": "EUR", "merchant\_requested\_amount": 400, "fixed\_side": "buy", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "pending\_confirmation" } } * Funding wallet with FX - fixed side sell * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 496, "currency": "EUR", "ewallets": \[\ {\ "ewallet": "ewallet\_3801e782955b29955445586a2405a5db",\ "percentage": 100\ }\ \], "expiration": 1661850500, "fixed\_side": "sell", "metadata": { "merchant\_defined": true }, "payment\_method": { "type": "de\_visa\_card", "fields": { "number": "4111111111111111", "expiration\_month": "10", "expiration\_year": "23", "cvv": "123", "name": "John Doe" } }, "requested\_currency": "PHP" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "cae91cec-6111-4ad5-b895-d289b7ebafc5" }, "data": { "id": "payment\_c1cda2a0652e57db1a6ad55e34b73a80", "amount": 496, "original\_amount": 496, "is\_partial": false, "currency\_code": "EUR", "country\_code": "de", "status": "CLO", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_4a312ec36f5cc51af273884d31375996", "payment\_method": "card\_be0868450fb8f21088def59720ff50ae", "payment\_method\_data": { "id": "card\_be0868450fb8f21088def59720ff50ae", "type": "de\_visa\_card", "category": "card", "metadata": null, "image": "", "authentication\_url": "", "webhook\_url": "", "supporting\_documentation": "", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "brand": null, "bin\_number": "411111" }, "expiration\_year": "23", "expiration\_month": "10", "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467" }, "expiration": 1622635369, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Rapyd", "transaction\_id": "", "created\_at": 1622030569, "metadata": { "merchant\_defined": true }, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1622030569, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": "ewallet\_3801e782955b29955445586a2405a5db", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_3801e782955b29955445586a2405a5db",\ "amount": 28357.74,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "de\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 57.172867, "merchant\_requested\_currency": "PHP", "merchant\_requested\_amount": 28357.74, "fixed\_side": "sell", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "not\_applicable" } } * Payment with initiation type set * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 101, "currency": "USD", "description": "Payment method token", "initiation\_type": "moto", "payment\_method": "other\_7f991f72a4c14c5cd79627ebc21241de", "ewallets": \[\ {\ "ewallet": "ewallet\_1290eef66d0b84ece177a3f5bd8fb0c8",\ "percentage": 100\ }\ \], "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "9f3831a1-3e05-4c20-ae7b-c3a6de8f66a5" }, "data": { "id": "payment\_c8e22a6116f7c83bab1a081ac4a3e5cd", "amount": 0, "original\_amount": 101, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": "ACT", "description": "Payment method token", "merchant\_reference\_id": "", "customer\_token": "cus\_bbba43edfcb8bd0ace84fbb1e5b15a73", "payment\_method": "other\_7f991f72a4c14c5cd79627ebc21241de", "payment\_method\_data": { "id": "other\_7f991f72a4c14c5cd79627ebc21241de", "type": "us\_stopngo\_cash", "category": "cash", "metadata": { "merchant\_defined": "Prime customer" }, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable" }, "auth\_code": null, "expiration": 1664882380, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1663672780, "metadata": { "merchant\_defined": true }, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": { "code": "922635458845940138395842040252" }, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "Please visit any one of your nearest participating Stop-N-Go stores.",\ "step2": "Present your barcode to be scanned at the register and the exact $ amount for which the barcode was generated.",\ "step3": "Provide cash to complete your payment.",\ "step4": "Keep your receipt as proof of payment."\ }\ \]\ }\ \], "ewallet\_id": "ewallet\_1290eef66d0b84ece177a3f5bd8fb0c8", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_1290eef66d0b84ece177a3f5bd8fb0c8",\ "amount": 101,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "us\_stopngo\_cash", "payment\_method\_type\_category": "cash", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "moto", "mid": "", "next\_action": "pending\_confirmation", "error\_code": "", "remitter\_information": {} } } * Split payment with FX - fixed side buy * curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 250, "currency": "EUR", "payment\_method": { "type": "fr\_visa\_card", "fields": { "name": "John Doe", "number": "4111111111111111", "expiration\_month": "10", "expiration\_year": "23", "cvv": "123" } }, "description": "Split payment with FX - fixed side buy", "capture": true, "ewallets": \[{\ "ewallet": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4",\ "amount": 200\ }, {\ "ewallet": "ewallet\_755b0fd11fd22b33328fff7d30f3ce30",\ "amount": 50\ }\ \], "expiration": 1626531390, "fixed\_side": "buy", "requested\_currency": "USD", "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "6e7f4f34-e35d-48fd-8136-f79dd6534f06" }, "data": { "id": "payment\_7baa84f72514e949bce1fd53d0edeac9", "amount": 314.87, "original\_amount": 314.87, "is\_partial": false, "currency\_code": "USD", "country\_code": "fr", "status": "CLO", "description": "Split payment with FX - fixed side buy", "merchant\_reference\_id": "", "customer\_token": "cus\_8e796469f41b59a20a979d62b2209838", "payment\_method": "card\_e9f7493d18029ec5f2b8be086ae459ce", "payment\_method\_data": { "id": "card\_e9f7493d18029ec5f2b8be086ae459ce", "type": "fr\_visa\_card", "category": "card", "metadata": null, "image": "", "authentication\_url": "", "webhook\_url": "", "supporting\_documentation": "", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "brand": null, "bin\_number": "411111" }, "expiration\_year": "23", "expiration\_month": "10", "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467" }, "expiration": 1622544155, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Rapyd", "transaction\_id": "", "created\_at": 1621939355, "metadata": { "merchant\_defined": true }, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1621939355, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_755b0fd11fd22b33328fff7d30f3ce30",\ "amount": 50,\ "percent": 20,\ "refunded\_amount": 0\ },\ {\ "ewallet\_id": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4",\ "amount": 200,\ "percent": 80,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "fr\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 0.79397895, "merchant\_requested\_currency": "EUR", "merchant\_requested\_amount": 250, "fixed\_side": "buy", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "not\_applicable" } } * Split payment with FX - fixed side sell * curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 250, "currency": "EUR", "payment\_method": { "type": "fr\_visa\_card", "fields": { "name": "John Doe", "number": "4111111111111111", "expiration\_month": "10", "expiration\_year": "23", "cvv": "123" } }, "description": "Split payment with FX - fixed side sell", "capture": true, "ewallets": \[{\ "ewallet": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4",\ "amount": 200\ }, {\ "ewallet": "ewallet\_755b0fd11fd22b33328fff7d30f3ce30",\ "amount": 50\ }\ \], "expiration": 1626531790, "fixed\_side": "sell", "requested\_currency": "USD", "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "0b0213b3-62eb-41ca-807f-56943f2e60a6" }, "data": { "id": "payment\_8bfd0a5c2ab4deafd55f81f73429e063", "amount": 250, "original\_amount": 250, "is\_partial": false, "currency\_code": "EUR", "country\_code": "fr", "status": "CLO", "description": "Split payment with FX - fixed side sell", "merchant\_reference\_id": "", "customer\_token": "cus\_9bfee226939603040491bac6a2bc868b", "payment\_method": "card\_97d94e4c6dd64b2c010bddc3257c1e5f", "payment\_method\_data": { "id": "card\_97d94e4c6dd64b2c010bddc3257c1e5f", "type": "fr\_visa\_card", "category": "card", "metadata": null, "image": "", "authentication\_url": "", "webhook\_url": "", "supporting\_documentation": "", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "brand": null, "bin\_number": "411111" }, "expiration\_year": "23", "expiration\_month": "10", "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467" }, "expiration": 1622544309, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Rapyd", "transaction\_id": "", "created\_at": 1621939510, "metadata": { "merchant\_defined": true }, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1621939510, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_755b0fd11fd22b33328fff7d30f3ce30",\ "amount": 59.25,\ "percent": 20,\ "refunded\_amount": 0\ },\ {\ "ewallet\_id": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4",\ "amount": 237.01,\ "percent": 80,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "fr\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1.18504415, "merchant\_requested\_currency": "USD", "merchant\_requested\_amount": 296.26, "fixed\_side": "sell", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "not\_applicable" } } * Payment with FX - fixed side buy - gross absolute fees * curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 100, "currency": "USD", "requested\_currency": "SGD", "fixed\_side": "buy", "expiration": 1667194081, "ewallets": \[{\ "ewallet": "ewallet\_b329cbcd77c93a0513f83734fa661ec8",\ "percentage": 100\ }\ \], "payment\_fees": { "transaction\_fee": { "calc\_type": "gross", "fee\_type": "absolute", "value": 2 }, "fx\_fee": { "calc\_type": "gross", "fee\_type": "percentage", "value": 2.5 } }, "payment\_method": { "type": "sg\_paynow\_bank" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "1a016ab4-7d48-4383-bee4-be874a29efd2" }, "data": { "id": "payment\_7c7b9c33885f613ca48c080c8384cb60", "amount": 0, "original\_amount": 152.59, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": "ACT", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_e32e0a3ed8d6f6420b8837a535e0961e", "payment\_method": "other\_e021373849f7fe18c2c084b554b34d2a", "payment\_method\_data": { "id": "other\_e021373849f7fe18c2c084b554b34d2a", "type": "sg\_paynow\_bank", "category": "bank\_transfer", "metadata": {}, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "bic\_swift": "", "account\_last4": "" }, "auth\_code": null, "expiration": 1667194081, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Rapyd", "transaction\_id": "", "created\_at": 1667117523, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": { "PayNow QR": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAe8==" }, "textual\_codes": { "Payee Name": "Rapyd" }, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "Please scan the QR Code above with your PayNow App, or enter the Paynow ID of the merchant to pay without scanning the code in PayNow support mobile banking application. Please do quote the Payment Reference otherwise there could be delays matching your payment against your transaction."\ }\ \]\ }\ \], "ewallet\_id": null, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_b329cbcd77c93a0513f83734fa661ec8",\ "amount": 100,\ "percent": 100,\ "refunded\_amount": 0\ },\ {\ "ewallet\_id": "ewallet\_be4ba8f13da40caa59a7e03022a8acfe",\ "amount": 4.5,\ "percent": 4.5,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "sg\_paynow\_bank", "payment\_method\_type\_category": "bank\_transfer", "fx\_rate": 0.68483455, "merchant\_requested\_currency": "USD", "merchant\_requested\_amount": 104.5, "fixed\_side": "buy", "payment\_fees": { "transaction\_fee": { "calc\_type": "gross", "value": 2, "fee\_type": "absolute" }, "fx\_fee": { "calc\_type": "gross", "value": 2.5 }, "gross\_fees": 4.5, "net\_fees": 0, "total\_merchant\_fees": 4.5 }, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "mid\_ac448ec843ffeb1b4639c235d9f933e2", "next\_action": "pending\_confirmation", "error\_code": "", "remitter\_information": {} } } * Payment with FX - fixed side buy - net absolute fees * curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 100, "currency": "USD", "requested\_currency": "SGD", "fixed\_side": "buy", "expiration": 1667194081, "ewallets": \[\ {\ "ewallet": "ewallet\_b329cbcd77c93a0513f83734fa661ec8",\ "percentage": 100\ }\ \], "payment\_fees": { "transaction\_fee": { "calc\_type": "net", "fee\_type": "absolute", "value": 2 }, "fx\_fee": { "calc\_type": "net", "fee\_type": "percentage", "value": 2.5 } }, "payment\_method": { "type": "sg\_paynow\_bank" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "e43586d1-5d38-46ce-980a-2180ad5744ee" }, "data": { "id": "payment\_0ddf6492ed43c8bfa653ceb4e2e4ec1a", "amount": 0, "original\_amount": 146.02, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": "ACT", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_f576b8862e97477d032171bb124c49b6", "payment\_method": "other\_169fe3bf7a197af6d0a3913f19d130d8", "payment\_method\_data": { "id": "other\_169fe3bf7a197af6d0a3913f19d130d8", "type": "sg\_paynow\_bank", "category": "bank\_transfer", "metadata": {}, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "bic\_swift": "", "account\_last4": "" }, "auth\_code": null, "expiration": 1667194081, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Rapyd", "transaction\_id": "", "created\_at": 1667118321, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": { "PayNow QR": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAe==" }, "textual\_codes": { "Payee Name": "Rapyd" }, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "Please scan the QR Code above with your PayNow App, or enter the Paynow ID of the merchant to pay without scanning the code in PayNow support mobile banking application. Please do quote the Payment Reference otherwise there could be delays matching your payment against your transaction."\ }\ \]\ }\ \], "ewallet\_id": null, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_b329cbcd77c93a0513f83734fa661ec8",\ "amount": 95.5,\ "percent": 95.5,\ "refunded\_amount": 0\ },\ {\ "ewallet\_id": "ewallet\_be4ba8f13da40caa59a7e03022a8acfe",\ "amount": 4.5,\ "percent": 4.5,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "sg\_paynow\_bank", "payment\_method\_type\_category": "bank\_transfer", "fx\_rate": 0.68483455, "merchant\_requested\_currency": "USD", "merchant\_requested\_amount": 100, "fixed\_side": "buy", "payment\_fees": { "transaction\_fee": { "calc\_type": "net", "value": 2, "fee\_type": "absolute" }, "fx\_fee": { "calc\_type": "net", "value": 2.5 }, "gross\_fees": 0, "net\_fees": 4.5, "total\_merchant\_fees": 4.5 }, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "mid\_ac448ec843ffeb1b4639c235d9f933e2", "next\_action": "pending\_confirmation", "error\_code": "", "remitter\_information": {} } } * Payment with FX - fixed side sell - gross absolute fees * curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": "100", "currency": "SGD", "requested\_currency": "USD", "fixed\_side": "sell", "expiration": 1667194081, "ewallets": \[\ {\ "ewallet": "ewallet\_b329cbcd77c93a0513f83734fa661ec8",\ "percentage": 100\ }\ \], "payment\_fees": { "transaction\_fee": { "calc\_type": "gross", "fee\_type": "absolute", "value": 2 }, "fx\_fee": { "calc\_type": "gross", "fee\_type": "percentage", "value": 2.5 } }, "payment\_method": { "type": "sg\_paynow\_bank" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "30d6abc3-2a0d-423a-9046-1f063a0f2cf9" }, "data": { "id": "payment\_ad4195adfd803334096040cb517a381b", "amount": 0, "original\_amount": 104.5, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": "ACT", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_64cd6b6a72ea5176b7812a8ec5b9fb41", "payment\_method": "other\_2a98cd03cafb3b54416da8f66d4ebb60", "payment\_method\_data": { "id": "other\_2a98cd03cafb3b54416da8f66d4ebb60", "type": "sg\_paynow\_bank", "category": "bank\_transfer", "metadata": {}, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "bic\_swift": "", "account\_last4": "" }, "auth\_code": null, "expiration": 1667194081, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Rapyd", "transaction\_id": "", "created\_at": 1667119989, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": { "PayNow QR": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAe8AA==" }, "textual\_codes": { "Payee Name": "Rapyd" }, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "Please scan the QR Code above with your PayNow App, or enter the Paynow ID of the merchant to pay without scanning the code in PayNow support mobile banking application. Please do quote the Payment Reference otherwise there could be delays matching your payment against your transaction."\ }\ \]\ }\ \], "ewallet\_id": null, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_b329cbcd77c93a0513f83734fa661ec8",\ "amount": 68.48,\ "percent": 100,\ "refunded\_amount": 0\ },\ {\ "ewallet\_id": "ewallet\_be4ba8f13da40caa59a7e03022a8acfe",\ "amount": 3.08,\ "percent": 4.5,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "sg\_paynow\_bank", "payment\_method\_type\_category": "bank\_transfer", "fx\_rate": 0.68483455, "merchant\_requested\_currency": "USD", "merchant\_requested\_amount": 71.56, "fixed\_side": "sell", "payment\_fees": { "transaction\_fee": { "calc\_type": "gross", "value": 2, "fee\_type": "absolute" }, "fx\_fee": { "calc\_type": "gross", "value": 2.5 }, "gross\_fees": 4.5, "net\_fees": 0, "total\_merchant\_fees": 3.08 }, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "mid\_ac448ec843ffeb1b4639c235d9f933e2", "next\_action": "pending\_confirmation", "error\_code": "", "remitter\_information": {} } } * Payment with FX - fixed side sell - net absolute fees * curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 136, "currency": "SGD", "requested\_currency": "USD", "fixed\_side": "sell", "expiration": 1667194081, "ewallets": \[\ {\ "ewallet": "ewallet\_b329cbcd77c93a0513f83734fa661ec8",\ "percentage": 100\ }\ \], "payment\_fees": { "transaction\_fee": { "calc\_type": "net", "fee\_type": "absolute", "value": 2 }, "fx\_fee": { "calc\_type": "net", "fee\_type": "percentage", "value": 2.5 } }, "payment\_method": { "type": "sg\_paynow\_bank" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "eab14217-e85a-4334-bd8c-aafdfa069187" }, "data": { "id": "payment\_5329f760190327f73fa257ad122d2e4a", "amount": 0, "original\_amount": 136, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": "ACT", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_cd2eef1d1e5749150afc448033b4c8f5", "payment\_method": "other\_4b0b3baddc3f56709765bfb91c219465", "payment\_method\_data": { "id": "other\_4b0b3baddc3f56709765bfb91c219465", "type": "sg\_paynow\_bank", "category": "bank\_transfer", "metadata": {}, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "bic\_swift": "", "account\_last4": "" }, "auth\_code": null, "expiration": 1667194081, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Rapyd", "transaction\_id": "", "created\_at": 1667120561, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": { "PayNow QR": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAe==" }, "textual\_codes": { "Payee Name": "Rapyd" }, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "Please scan the QR Code above with your PayNow App, or enter the Paynow ID of the merchant to pay without scanning the code in PayNow support mobile banking application. Please do quote the Payment Reference otherwise there could be delays matching your payment against your transaction."\ }\ \]\ }\ \], "ewallet\_id": null, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_b329cbcd77c93a0513f83734fa661ec8",\ "amount": 89.44,\ "percent": 96.03,\ "refunded\_amount": 0\ },\ {\ "ewallet\_id": "ewallet\_be4ba8f13da40caa59a7e03022a8acfe",\ "amount": 3.7,\ "percent": 3.97,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "sg\_paynow\_bank", "payment\_method\_type\_category": "bank\_transfer", "fx\_rate": 0.68483455, "merchant\_requested\_currency": "USD", "merchant\_requested\_amount": 93.14, "fixed\_side": "sell", "payment\_fees": { "transaction\_fee": { "calc\_type": "net", "value": 2, "fee\_type": "absolute" }, "fx\_fee": { "calc\_type": "net", "value": 2.5 }, "gross\_fees": 0, "net\_fees": 5.4, "total\_merchant\_fees": 3.7 }, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "mid\_ac448ec843ffeb1b4639c235d9f933e2", "next\_action": "pending\_confirmation", "error\_code": "", "remitter\_information": {} } } * Payment by card - 3DS required * curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "payment\_method": { "type": "us\_debit\_visa\_card", "fields": { "number": "4111111111111111", "expiration\_month": "11", "expiration\_year": "23", "cvv": "123", "name": "John Doe" } }, "customer": "cus\_0ab3c4c22ad1b8f47bcf89a5d66b2e98", "payment\_method\_options": { "3d\_required": true }, "metadata": { "merchant\_defined": "created" }, "amount": 23, "ewallet": "ewallet\_3cd928611934717f283df049a2c7c17e", "currency": "USD" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "b3ef6f28-c7d0-405f-a43e-ad610410acf3" }, "data": { "id": "payment\_ef108534486afc4916b905ed7836d766", "amount": 0, "original\_amount": 23, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": "ACT", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_0ab3c4c22ad1b8f47bcf89a5d66b2e98", "payment\_method": "card\_3f394ef0df47ee2cd1d11e459e2fbdff", "payment\_method\_data": { "id": "card\_3f394ef0df47ee2cd1d11e459e2fbdff", "type": "us\_debit\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "3d\_verification", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": null, "brand": null, "level": null, "country": null, "bin\_number": "411111" }, "expiration\_year": "23", "expiration\_month": "11", "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467" }, "auth\_code": null, "expiration": 1664277810, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "https://sandboxcheckout.rapyd.net/3ds-payment?token=payment\_ef108534486afc4916b905ed7836d766", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1663673010, "metadata": { "merchant\_defined": "created" }, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\], "ewallet\_id": "ewallet\_3cd928611934717f283df049a2c7c17e", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_3cd928611934717f283df049a2c7c17e",\ "amount": 23,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": { "3d\_required": true }, "payment\_method\_type": "us\_debit\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "3d\_verification", "error\_code": "", "remitter\_information": {} } } * Client Details for 3DS * curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 12.73, "currency": "USD", "payment\_method": { "type": "us\_debit\_visa\_card", "fields": { "number": "4111111111111111", "expiration\_month": "12", "expiration\_year": "23", "cvv": "345", "name": "John Doe" } }, "ewallets": \[\ {\ "ewallet": "ewallet\_e67c8ad63200d781470a04107fbd7c59",\ "percentage": 100\ }\ \], "metadata": { "merchant\_defined": "created" }, "client\_details": { "time\_zone\_offset": 300, "language": "en-US", "java\_enabled": true, "java\_script\_enabled": true, "screen\_color\_depth": 16, "screen\_height": 768, "screen\_width": 1024, "accept\_header": "text/html", "ip\_address": "162.162.162.162" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "c1914605-61d7-45ab-b663-82e7655937ff" }, "data": { "id": "payment\_b2aeabdca8722a68025e582f4c191cec", "amount": 12.73, "original\_amount": 12.73, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": "CLO", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_4e71af7edfc8a12f9a69dc71a88dfafc", "payment\_method": "card\_defadbfa66837ae05d257850e5897943", "payment\_method\_data": { "id": "card\_defadbfa66837ae05d257850e5897943", "type": "us\_debit\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": null, "brand": null, "level": null, "country": null, "bin\_number": "411111" }, "expiration\_year": "23", "expiration\_month": "12", "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467", "network\_reference\_id": "123456" }, "auth\_code": null, "expiration": 1664278061, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1663673261, "metadata": { "merchant\_defined": "created" }, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1663673261, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\], "ewallet\_id": "ewallet\_e67c8ad63200d781470a04107fbd7c59", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_e67c8ad63200d781470a04107fbd7c59",\ "amount": 12.73,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "us\_debit\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "not\_applicable", "error\_code": "", "remitter\_information": {} } } * Payment - Customer Object * curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 36, "currency": "BOB", "customer": { "name": "John Doe" }, "payment\_method": { "type": "bo\_express\_cash" }, "metadata": { "merchant\_defined": "created" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "a5026930-962d-4831-90d1-8132984c140e" }, "data": { "id": "payment\_d1c3f5d84eb3458b5e7add265e5ce4fb", "amount": 0, "original\_amount": 36, "is\_partial": false, "currency\_code": "BOB", "country\_code": "BO", "status": "ACT", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_20375da56d207592a81d19252ffeebc0", "payment\_method": "other\_ab22fdec36d645323259b21eb0fd4e5b", "payment\_method\_data": { "id": "other\_ab22fdec36d645323259b21eb0fd4e5b", "type": "bo\_express\_cash", "category": "cash", "metadata": {}, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable" }, "auth\_code": null, "expiration": 0, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Rapyd", "transaction\_id": "", "created\_at": 1667384655, "metadata": { "merchant\_defined": "created" }, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": { "paycode": "9068126232569512" }, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "Write down the Agreement Code “Pago Express - Servicios en Linea para Rapyd” and your Payment Reference",\ "step2": "Visit the nearest Pago Express location",\ "step3": "Tell the agent you want to make a payment for “Pago Express - Servicios en Linea para Rapyd”",\ "step4": "Provide your Payment Reference to the agent",\ "step5": "Provide your payment in cash",\ "step6": "Receive your receipt, and done!"\ }\ \]\ },\ {\ "name": "instrucciones",\ "steps": \[\ {\ "step1": "Apunta el convenio del servicio (“Pago Express - Servicios en Linea para Rapyd”) y tu número de referencia (Payment Reference)",\ "step2": "Visitar el punto de pago más cercano de Pago Express",\ "step3": "Informarle al agente de Pago Express que deseas hacer un pago de “Pago Express - Servicios en Linea para Rapyd”",\ "step4": "Compartir tu número de referencia (Payment Reference) con el agente",\ "step5": "Entregarle el efectivo",\ "step6": "Recibir tu recibo, y listo!"\ }\ \]\ }\ \], "ewallet\_id": "ewallet\_be4ba8f13da40caa59a7e03022a8acfe", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_be4ba8f13da40caa59a7e03022a8acfe",\ "amount": 36,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "bo\_express\_cash", "payment\_method\_type\_category": "cash", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "pending\_confirmation", "error\_code": "", "remitter\_information": {} } } * Account funding transaction - 'person' wallet * curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 1.07, "currency": "EUR", "description": "Account Funding Transaction", "capture": true, "ewallet": "ewallet\_4d4b74f67ddf7cd8fd9ea33bf72aa3bd", "complete\_payment\_url": "https://complete.example.net", "error\_payment\_url": "https://error.example.net", "payment\_method": { "type": "nl\_visa\_card", "fields": { "number": "4111111111111111", "expiration\_month": "11", "expiration\_year": "23", "cvv": "123", "name": "John Doe" } }, "payment\_method\_options": { "aft": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "851d1197-b7b0-43b2-a3c1-1353e227cf75" }, "data": { "id": "payment\_bafcc78a0542ef64f3bbd145c130690c", "amount": 1.07, "original\_amount": 1.07, "is\_partial": false, "currency\_code": "EUR", "country\_code": "NL", "status": "CLO", "description": "Account Funding Transaction", "merchant\_reference\_id": "", "customer\_token": "cus\_77dbcd9f07c1d78a7702a46a3d8c1d4e", "payment\_method": "card\_38f74ed0a42211b2c9a08aa945074875", "payment\_method\_data": { "id": "card\_38f74ed0a42211b2c9a08aa945074875", "type": "nl\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": "CREDIT", "brand": "VISA", "level": "CLASSIC", "country": "NL", "bin\_number": "411111" }, "expiration\_year": "23", "expiration\_month": "11", "fingerprint\_token": "ocfp\_c6abbccb3440fcb0fc34ae14126607fa" }, "auth\_code": "003603", "expiration": 1676218030, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "https://complete.example.net", "error\_payment\_url": "https://error.example.net", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1675613230, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1675613232, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": ""\ }\ \]\ }\ \], "ewallet\_id": "ewallet\_4d4b74f67ddf7cd8fd9ea33bf72aa3bd", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_4d4b74f67ddf7cd8fd9ea33bf72aa3bd",\ "amount": 1.07,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": { "aft": true }, "payment\_method\_type": "nl\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "mid\_7b624b32f161313347d554138d81858", "next\_action": "not\_applicable", "error\_code": "", "remitter\_information": {} } } * Cryptocurrency transaction - 'person' wallet * curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 1.07, "currency": "EUR", "description": "Cryptocurrency Transaction - Person Wallet", "capture": true, "ewallet": "ewallet\_4d4b74f67ddf7cd8fd9ea33bf72aa3bd", "complete\_payment\_url": "https://complete.example.net", "error\_payment\_url": "https://error.example.net", "payment\_method": { "type": "nl\_visa\_card", "fields": { "number": "4111111111111111", "expiration\_month": "11", "expiration\_year": "27", "cvv": "123", "name": "John Doe" } }, "payment\_method\_options": { "special\_condition\_indicator": "cryptocurrency" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "a0fb4d99-5b6f-4d25-83c7-6ab228752706" }, "data": { "id": "payment\_cf70d29bad2a0f97e079518e3533964c", "amount": 1.07, "original\_amount": 1.07, "is\_partial": false, "currency\_code": "EUR", "country\_code": "NL", "status": "CLO", "description": "Cryptocurrency Transaction - Person Wallet", "merchant\_reference\_id": "", "customer\_token": "cus\_77dbcd9f07c1d78a7702a46a3d8c1d4e", "payment\_method": "card\_49a46de5c81124c4a1b63cc254253412", "payment\_method\_data": { "id": "card\_49a46de5c81124c4a1b63cc254253412", "type": "nl\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": "CREDIT", "brand": "VISA", "level": "CLASSIC", "country": "NL", "bin\_number": "411111" }, "expiration\_year": "27", "expiration\_month": "11", "fingerprint\_token": "ocfp\_c6abbccb3440fcb0fc34ae14126607fa" }, "auth\_code": "003603", "expiration": 1728211544, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "https://complete.example.net", "error\_payment\_url": "https://error.example.net", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1727606745, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1727606747, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": ""\ }\ \]\ }\ \], "ewallet\_id": "ewallet\_4d4b74f67ddf7cd8fd9ea33bf72aa3bd", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_4d4b74f67ddf7cd8fd9ea33bf72aa3bd",\ "amount": 1.07,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": { "aft": true, "special\_condition\_indicator": "cryptocurrency" }, "payment\_method\_type": "nl\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "mid\_7b624b32f161313347d554138d81858", "next\_action": "not\_applicable", "error\_code": "", "remitter\_information": {}, "save\_payment\_method": false } } * Payment with network reference ID * curl -X post https://sandboxapi.rapyd.net/v1/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 11.0, "currency": "GBP", "payment\_method": { "type": "at\_visa\_card", "fields": { "number": "4111111111111111", "expiration\_month": "12", "expiration\_year": "23", "network\_reference\_id": "123456", "name": "John Doe" } }, "metadata": { "merchant\_defined": "true" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "e544f263-adbf-4c47-bf05-e521eef9a059" }, "data": { "id": "payment\_8d0bb8de9c6b0d30772ffc217533301e", "amount": 11, "original\_amount": 11, "is\_partial": false, "currency\_code": "GBP", "country\_code": "is", "status": "CLO", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_7592e2618a6eff2b84c25f2bc4ea0b44", "payment\_method": "card\_61bd781a57774deadbb9d67334420703", "payment\_method\_data": { "id": "card\_61bd781a57774deadbb9d67334420703", "type": "at\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": null, "brand": null, "country": null, "bin\_number": "411111" }, "expiration\_year": "26", "expiration\_month": "11", "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467", "network\_reference\_id": 343474 }, "auth\_code": null, "expiration": 1672735073, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1672130273, "metadata": { "merchant\_defined": "true" }, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1672130273, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": "ewallet\_c1943cfeda5f98247ab117e5d2648861", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_c1943cfeda5f98247ab117e5d2648861",\ "amount": 11,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "at\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "not\_applicable", "error\_code": "", "remitter\_information": {} } } * Account funding transaction via business * curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 1.04, "currency": "EUR", "customer": "cus\_77dbcd9f07c1d78a7702a46a3d8c1d4e", "description": "Account Funding Transaction - Business", "capture": true, "complete\_payment\_url": "https://complete.example.net", "error\_payment\_url": "https://error.example.net", "payment\_method": { "type": "nl\_visa\_card", "fields": { "number": "4111111111111111", "expiration\_month": "11", "expiration\_year": "23", "cvv": "456", "name": "John Doe" } }, "payment\_method\_options": { "aft": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "c719720b-7d8d-45a1-90fd-43ac806c5f81" }, "data": { "id": "payment\_f26869f8a6f37f81811bed9128d9e099", "amount": 1.04, "original\_amount": 1.04, "is\_partial": false, "currency\_code": "EUR", "country\_code": "NL", "status": "CLO", "description": "Account Funding Transaction - Business", "merchant\_reference\_id": "", "customer\_token": "cus\_77dbcd9f07c1d78a7702a46a3d8c1d4e", "payment\_method": "card\_7dee1547b8e5d636c0ff125f4e42224f", "payment\_method\_data": { "id": "card\_7dee1547b8e5d636c0ff125f4e42224f", "type": "nl\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": "CREDIT", "brand": "VISA", "level": "CLASSIC", "country": "NL", "bin\_number": "411111" }, "expiration\_year": "23", "expiration\_month": "11", "fingerprint\_token": "ocfp\_b15e327899e8442532224577126e24b4" }, "auth\_code": "032059", "expiration": 1676208274, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "https://complete.example.net", "error\_payment\_url": "https://error.example.net", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1675603474, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1675603475, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": ""\ }\ \]\ }\ \], "ewallet\_id": "ewallet\_20becfae6ed603c94fe7306103bcc5c5", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_20becfae6ed603c94fe7306103bcc5c5",\ "amount": 1.04,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": { "aft": true }, "payment\_method\_type": "nl\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "mid\_6a713a21f050402258d663049d919847", "next\_action": "not\_applicable", "error\_code": "", "remitter\_information": {} } } * Cryptocurrency transaction via business * curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 1.04, "currency": "EUR", "customer": "cus\_77dbcd9f07c1d78a7702a46a3d8c1d4e", "description": "Cryptocurrency Transaction - Business", "capture": true, "complete\_payment\_url": "https://complete.example.net", "error\_payment\_url": "https://error.example.net", "payment\_method": { "type": "nl\_visa\_card", "fields": { "number": "4111111111111111", "expiration\_month": "11", "expiration\_year": "27", "cvv": "456", "name": "John Doe" } }, "payment\_method\_options": { "special\_condition\_indicator": "cryptocurrency" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "cc3b696c-5dbf-499c-86c2-be5d514556c6" }, "data": { "id": "payment\_56f3eb8ec543a3962ce112b4f03da9ae", "amount": 1.04, "original\_amount": 1.04, "is\_partial": false, "currency\_code": "EUR", "country\_code": "NL", "status": "CLO", "description": "Cryptocurrency Transaction - Business", "merchant\_reference\_id": "", "customer\_token": "cus\_77dbcd9f07c1d78a7702a46a3d8c1d4e", "payment\_method": "card\_27a4c2f05d9ebd1700f5338e155c1ced", "payment\_method\_data": { "id": "card\_27a4c2f05d9ebd1700f5338e155c1ced", "type": "nl\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": "CREDIT", "brand": "VISA", "level": "CLASSIC", "country": "NL", "bin\_number": "411111" }, "expiration\_year": "27", "expiration\_month": "11", "fingerprint\_token": "ocfp\_b15e327899e8442532224577126e24b4" }, "auth\_code": "032059", "expiration": 1728211544, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "https://complete.example.net", "error\_payment\_url": "https://error.example.net", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1727606745, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1727606747, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": ""\ }\ \]\ }\ \], "ewallet\_id": "ewallet\_20becfae6ed603c94fe7306103bcc5c5", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_20becfae6ed603c94fe7306103bcc5c5",\ "amount": 1.04,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": { "aft": true, "special\_condition\_indicator": "cryptocurrency" }, "payment\_method\_type": "nl\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "mid\_6a713a21f050402258d663049d919847", "next\_action": "not\_applicable", "error\_code": "", "remitter\_information": {}, "save\_payment\_method": false } } * Payment with TAVV * curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 250, "currency": "USD", "capture": true, "save\_payment\_method": true, "payment\_method": { "type": "it\_visa\_card", "fields": { "name": "John Doe", "number": "4111111111111111", "expiration\_month": "12", "expiration\_year": "30", "cvv": "123", "number\_type": "TPAN" } }, "payment\_method\_options": { "tavv": "ACSczA==" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "7d74d9ad-aa1d-48d1-9b08-b87072a5419e" }, "data": { "id": "payment\_ca8a05a2711ae9abc92efda4002d270a", "amount": 250, "original\_amount": 250, "is\_partial": false, "currency\_code": "USD", "country\_code": "it", "status": "CLO", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_f0530667898889be024a95f850ca89e1", "payment\_method": "card\_1f689621c68fadf72f2cea0bba48cae2", "payment\_method\_data": { "id": "card\_1f689621c68fadf72f2cea0bba48cae2", "type": "it\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": "CREDIT", "brand": "VISA", "level": null, "issuer": "JPMORGAN CHASE BANK, N.A.", "country": "US", "bin\_number": "411111" }, "number\_type": "TPAN", "expiration\_year": "30", "expiration\_month": "12", "fingerprint\_token": "ocfp\_99795b7a947e95d98c337bcc3aa0bd72" }, "auth\_code": null, "expiration": 1707743274, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "N/A", "transaction\_id": "", "created\_at": 1707138474, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1707138475, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": "ewallet\_bcad4157ffae36fd13e44c57a4dcafeb", "ewallets": \[{\ "ewallet\_id": "ewallet\_bcad4157ffae36fd13e44c57a4dcafeb",\ "amount": 250,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": "it\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "not\_applicable", "error\_code": "", "remitter\_information": {}, "save\_payment\_method": true } } * Payment with External 3DS Provider * curl -X post https://sandboxapi.rapyd.net/v1/payments/ -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 10, "currency": "EUR", "capture": false, "description": "payment by card", "customer": "cus\_5bee14584a78638ba717e746be62ee01", "payment\_method": { "type": "is\_visa\_card", "fields": { "name": "John Doe", "number": "4111111111111111", "expiration\_month": "05", "expiration\_year": "25", "cvv": "111" } }, "payment\_method\_options": { "3d\_version": "2.2.0", "cavv": "BwABBYcyOCdlg0QChDI4EHUURgE", "eci": "05", "ds\_trans\_id": "1b20b229-8676-5812-8000-000000617fbb" }, "save\_payment\_method": true, "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "1f1159b0-6f64-49fa-9691-06db0a25bcca" }, "data": { "id": "payment\_7b8bed939df382e1fe61472387bc638c", "amount": 0, "original\_amount": 10, "is\_partial": false, "currency\_code": "EUR", "country\_code": "IS", "status": "ACT", "description": "payment by card", "merchant\_reference\_id": "", "customer\_token": "cus\_5bee14584a78638ba717e746be62ee01", "payment\_method": "card\_81d6b21911eab794cda8541213dec10d", "payment\_method\_data": { "id": "card\_81d6b21911eab794cda8541213dec10d", "type": "is\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "name": "John Doe", "last4": "1111", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": "DEBIT", "brand": "VISA", "level": "CREDIT", "issuer": "JPMORGAN CHASE BANK, N.A.", "country": "US", "bin\_number": "411111" }, "expiration\_year": "25", "expiration\_month": "05", "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467", "network\_reference\_id": "123456" }, "auth\_code": null, "expiration": 1709025524, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "Doc Team", "transaction\_id": "", "created\_at": 1708420724, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": ""\ }\ \]\ }\ \], "ewallet\_id": "ewallet\_c1943cfeda5f98247ab117e5d2648861", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_c1943cfeda5f98247ab117e5d2648861",\ "amount": 10,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": { "eci": "05", "cavv": "BwABBYcyOCdlg0QChDI4EHUURgE", "3d\_version": "2.2.0", "ds\_trans\_id": "1b20b229-8676-5812-8000-000000617fbb" }, "payment\_method\_type": "is\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "", "next\_action": "pending\_capture", "error\_code": "", "remitter\_information": {}, "save\_payment\_method": true } } In this section: All financial institutions that issue cards or process card transactions. The Payment Card Industry Security Standards Council develops and publishes regulations for the industry. The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. A number for a bank account that is used for international transfers. A server used by [issuing banks](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_issuer) to authenticate card users by [3DS](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_rds) authentication. For card transactions, a service that checks whether the cardholder's billing address matches the address for the cardholder's account. An alphanumeric identifier for financial institutions, also known informally as a [SWIFT](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_swift) code or SWIFT/BIC code. A numeric identifier for financial institutions. It appears as the first four to six digits on a payment card. A unique number for a payment card, usually 14 to 19 digits in length. Also known as a [card number](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_card-number) , [payment card number](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_payment-card-number) or [funding primary account number (FPAN)](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_fpan) . A numeric code printed on the card, consisting of 3 or 4 digits. Use of the code indicates that the person making the transaction has access to the physical card. This value cannot be stored in any way. Also known as [CCV](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_ccv) , [CID](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_cid) , [CSC](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_csc) and [CVC](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_cvc) . A protocol that provides increased security for card-not-present transactions. Rapyd supports version 2.2. Search results -------------- No results found * [Prev](payment.html) * [Next](create-payment.html#idp270829) --- # Create Wallet [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Wallet](rapyd-wallet-368670.html) * [Wallet](wallet.html) * Create Wallet * [Prev](wallet.html) * [Next](create-wallet.html#idp369330) ##### Create Wallet Create a Rapyd Wallet. The following types of wallet are supported: * **Person** - Requires one personal contact. * **Company** - Requires one business contact. You can add personal contacts as required. See [Add Contact to Wallet](add-contact-to-wallet.html "Add Contact to Wallet") . * **Client** - Requires one business contact. Created by [Rapyd Client Support](https://support.rapyd.net) . **Parent Wallet** The optional `parent_ewallet` parameter associates a **person** wallet with a **company** wallet. Implementing a parent wallet enhances the onboarding process and helps fulfill compliance regulations. * **Single parent:** A **person** wallet can have only one parent wallet. * **Default parent wallet:** When a request does not specify a parent wallet, the **client** wallet is automatically assigned as the parent wallet. * **Parent wallet type:** You can only assign a **company** wallet as a parent wallet. A **person** wallet cannot be a parent wallet. ### Note 1. For best practices, include the `first_name`, `last_name`, `date_of_birth`, `country`, `address.name` and `address.line_1` fields in the `contact` object. These fields are required for other operations. 2. This endpoint replaces the deprecated endpoint - `POST /v1/user` Rapyd will continue to support the deprecated endpoint until December 31, 2024. [###### Parameters](#idp369334_body) [###### Request Header Parameters](#idp369336_body) [###### Request Body Parameters](#idp369396_body) * * contact * Describes details about the wallet contacts. Array of objects. For details about the fields in the 'contact' object, see [Add Contact to Wallet](add-contact-to-wallet.html "Add Contact to Wallet") . * * ewallet\_reference\_id * Rapyd Wallet ID defined by the customer or end user. Must be unique. * * first\_name * First name of the Rapyd Wallet owner. For a **person** wallet type, alphabetic characters and spaces. * * last\_name * Family name of the Rapyd Wallet owner. For a **person** wallet type, alphabetic characters and spaces. * * type * Type of wallet: * **company** - Indicates a business wallet. * **person** - Indicates the wallet of an individual consumer. ### Note To create additional wallets of the **client** type for a Rapyd client, contact [Client Support](https://support.rapyd.net) . person [###### Response Parameters](#idp369463_body) * /v1/ewallets * Person Wallet * curl -X post https://sandboxapi.rapyd.net/v1/ewallets -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "first\_name": "John", "last\_name": "Doe", "ewallet\_reference\_id": "2023-01-29b", "metadata": {}, "type": "person", "contact": { "phone\_number": "+3547826575", "email": "johndoe@rapyd.net", "first\_name": "John", "last\_name": "Doe", "mothers\_name": "Jane Smith", "contact\_type": "personal", "address": { "name": "John Doe", "line\_1": "123 Main Street", "line\_2": "", "line\_3": "", "city": "Anytown", "state": "NY", "country": "US", "zip": "12345", "phone\_number": "+14155551611", "metadata": {}, "canton": "", "district": "" }, "identification\_type": "DL", "identification\_number": "1234567890", "date\_of\_birth": "2000-11-22", "country": "IS", "nationality": "IS", "metadata": { "merchant\_defined": true } } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "2322ef1e-2181-4981-8bd3-df329c240785" }, "data": { "phone\_number": null, "email": null, "first\_name": "John", "last\_name": "Doe", "id": "ewallet\_1d0a9c24781aeccca21f9e640d020d28", "status": "ACT", "accounts": \[\], "verification\_status": "not verified", "type": "person", "metadata": { "merchant\_defined": true }, "ewallet\_reference\_id": "2021-10-28d", "category": null, "contacts": { "data": \[\ {\ "id": "cont\_7883d252a75f525ae28d74d6c1da7167",\ "first\_name": "John",\ "last\_name": "Doe",\ "middle\_name": "",\ "second\_last\_name": "",\ "gender": "not\_applicable",\ "marital\_status": "not\_applicable",\ "house\_type": "",\ "contact\_type": "personal",\ "phone\_number": "+14155551234",\ "email": "johndoe@rapyd.net",\ "identification\_type": "DL",\ "identification\_number": "1234567890",\ "issued\_card\_data": {\ "preferred\_name": "",\ "transaction\_permissions": "",\ "role\_in\_company": ""\ },\ "date\_of\_birth": "2000-11-22",\ "country": "US",\ "nationality": "US",\ "address": {\ "id": "address\_a1cd1ab9cd3cb7395152ef9e7ceed05f",\ "name": "John Doe",\ "line\_1": "123 Main Street",\ "line\_2": "",\ "line\_3": "",\ "city": "Anytown",\ "state": "NY",\ "country": "US",\ "zip": "12345",\ "phone\_number": "+14155551611",\ "metadata": {},\ "canton": "",\ "district": "",\ "created\_at": 1635423334\ },\ "ewallet": "ewallet\_1d0a9c24781aeccca21f9e640d020d28",\ "created\_at": 1635423334,\ "metadata": {\ "merchant\_defined": true\ },\ "business\_details": null,\ "compliance\_profile": 0,\ "verification\_status": "not verified",\ "send\_notifications": false,\ "mothers\_name": "Jane Smith"\ }\ \], "has\_more": false, "total\_count": 1, "url": "/v1/ewallets/ewallet\_1d0a9c24781aeccca21f9e640d020d28/contacts" }, "parent\_ewallet": null } } * Person Wallet with Associated Parent Wallet * curl -X post https://sandboxapi.rapyd.net/v1/ewallets -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "first\_name": "John", "last\_name": "Doe", "ewallet\_reference\_id": "2083-06-133959", "parent\_ewallet": "ewallet\_2ee6d27a928b5861fde301fbfe0d72b0", "metadata": {}, "type": "person", "contact": { "phone\_number": "+3547267770", "email": "johndoe@rapyd.net", "first\_name": "John", "last\_name": "Doe", "mothers\_name": "Jane Smith", "contact\_type": "personal", "address": { "name": "John Doe", "line\_1": "123 Main Street", "line\_2": "", "line\_3": "", "city": "Anytown", "state": "NY", "country": "US", "zip": "12345", "phone\_number": "+14155551611", "metadata": {}, "canton": "", "district": "" }, "identification\_type": "DL", "identification\_number": "1234567890", "date\_of\_birth": "2000-11-22", "country": "IS", "nationality": "IS", "metadata": { "merchant\_defined": true } } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "d61eb505-ee85-46bd-b8a2-5e5c3342032a" }, "data": { "phone\_number": null, "email": null, "first\_name": "John", "last\_name": "Doe", "id": "ewallet\_2b34b3d5210343b23f85fbef3aca99db", "status": "ACT", "accounts": \[\], "verification\_status": "not verified", "type": "person", "metadata": {}, "ewallet\_reference\_id": "2083-06-133959", "category": null, "contacts": { "data": \[\ {\ "id": "cont\_f5bcfa4857e4f68ae665be14f1e7cb76",\ "first\_name": "John",\ "last\_name": "Doe",\ "middle\_name": "",\ "second\_last\_name": "",\ "gender": "not\_applicable",\ "marital\_status": "not\_applicable",\ "house\_type": "",\ "contact\_type": "personal",\ "phone\_number": "+3547267770",\ "email": "johndoe@rapyd.net",\ "identification\_type": "DL",\ "identification\_number": "1234567890",\ "issued\_card\_data": {\ "preferred\_name": "",\ "transaction\_permissions": "",\ "role\_in\_company": ""\ },\ "date\_of\_birth": "2000-11-22",\ "country": "IS",\ "nationality": "IS",\ "address": {\ "id": "address\_49db4574082a4a6a8bc89e9d86e55fcb",\ "name": "John Doe",\ "line\_1": "123 Main Street",\ "line\_2": "",\ "line\_3": "",\ "city": "Anytown",\ "state": "NY",\ "country": "US",\ "zip": "12345",\ "phone\_number": "+14155551611",\ "metadata": {},\ "canton": "",\ "district": "",\ "created\_at": 1727770702\ },\ "ewallet": "ewallet\_2b34b3d5210343b23f85fbef3aca99db",\ "created\_at": 1727770702,\ "metadata": {\ "merchant\_defined": true\ },\ "business\_details": null,\ "compliance\_profile": -1,\ "verification\_status": "not verified",\ "send\_notifications": false,\ "mothers\_name": "Jane Smith",\ "contact\_reference\_id": null\ }\ \], "has\_more": false, "total\_count": 1, "url": "/v1/ewallets/ewallet\_2b34b3d5210343b23f85fbef3aca99db/contacts" }, "parent\_ewallet": "ewallet\_2ee6d27a928b5861fde301fbfe0d72b0" } } * Company Wallet * curl -X post https://sandboxapi.rapyd.net/v1/ewallets -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "first\_name": "Four Star Professional Services", "last\_name": "", "ewallet\_reference\_id": "e-0619", "metadata": { "merchant\_defined": true }, "type": "company", "contact": { "phone\_number": "+14155551234", "email": "johndoe@rapyd.net", "first\_name": "John", "last\_name": "Doe", "contact\_type": "business", "address": { "name": "John Doe", "line\_1": "123 Main Street", "line\_2": "", "line\_3": "", "city": "Anytown", "state": "NY", "country": "US", "zip": "12345", "phone\_number": "+14155551234", "metadata": {}, "canton": "", "district": "" }, "identification\_type": "PA", "identification\_number": "1234567890", "date\_of\_birth": "2000-11-22", "country": "US", "metadata": { "merchant\_defined": true }, "business\_details": { "entity\_type": "association", "name": "Four Star Professional Services", "registration\_number": "4234567779", "industry\_category": "company", "industry\_sub\_category": "home services", "address": { "name": "John Doe", "line\_1": "1234 Main Street", "line\_2": "Suite 1200", "line\_3": "", "city": "Anytown", "state": "NY", "country": "US", "zip": "10101", "phone\_number": "14155557779", "metadata": { "merchant\_defined": true } } } } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "28671f60-49c4-4989-a1ab-0b89dbf1e002" }, "data": { "phone\_number": null, "email": null, "first\_name": "Four Star Professional Services", "last\_name": "", "id": "ewallet\_16f5b11d7cd37c0ebb9242699d1db61d", "status": "ACT", "accounts": \[\], "verification\_status": "not verified", "type": "company", "metadata": { "merchant\_defined": true }, "ewallet\_reference\_id": "e-0619", "category": null, "contacts": { "data": \[\ {\ "id": "cont\_de961371a321e0ed782c521e41def4e0",\ "first\_name": "John",\ "last\_name": "Doe",\ "middle\_name": "",\ "second\_last\_name": "",\ "gender": "not\_applicable",\ "marital\_status": "not\_applicable",\ "house\_type": "",\ "contact\_type": "business",\ "phone\_number": "+14155551234",\ "email": "johndoe@rapyd.net",\ "identification\_type": "PA",\ "identification\_number": "1234567890",\ "issued\_card\_data": {\ "preferred\_name": "",\ "transaction\_permissions": "",\ "role\_in\_company": ""\ },\ "date\_of\_birth": "2000-11-22",\ "country": "US",\ "nationality": null,\ "address": {\ "id": "address\_f39ec1393ddd85022c9cd430b996f59c",\ "name": "John Doe",\ "line\_1": "123 Main Street",\ "line\_2": "",\ "line\_3": "",\ "city": "Anytown",\ "state": "NY",\ "country": "US",\ "zip": "12345",\ "phone\_number": "+14155551234",\ "metadata": {},\ "canton": "",\ "district": "",\ "created\_at": 1687158709\ },\ "ewallet": "ewallet\_16f5b11d7cd37c0ebb9242699d1db61d",\ "created\_at": 1687158709,\ "metadata": {\ "merchant\_defined": true\ },\ "business\_details": {\ "id": "busi\_d49d261b771642ecf7209d8401f741b6",\ "name": "Four Star Professional Services",\ "registration\_number": "4234567779",\ "entity\_type": "association",\ "industry\_category": "company",\ "industry\_sub\_category": "home services",\ "address": {\ "id": "address\_5b6d9f0148e34ba084d158fe88af05ea",\ "name": "John Doe",\ "line\_1": "1234 Main Street",\ "line\_2": "Suite 1200",\ "line\_3": "",\ "city": "Anytown",\ "state": "NY",\ "country": "US",\ "zip": "10101",\ "phone\_number": "14155557779",\ "metadata": {\ "merchant\_defined": true\ },\ "canton": "",\ "district": "",\ "created\_at": 1687158709\ },\ "created\_at": 1687158709,\ "annual\_revenue": 0,\ "establishment\_date": null,\ "legal\_entity\_type": null,\ "cnae\_code": null\ },\ "compliance\_profile": 0,\ "verification\_status": "not verified",\ "send\_notifications": false,\ "mothers\_name": ""\ }\ \], "has\_more": false, "total\_count": 1, "url": "/v1/ewallets/ewallet\_16f5b11d7cd37c0ebb9242699d1db61d/contacts" }, "parent\_ewallet": null } } * Create Wallet with Contact Reference ID * curl -X post https://sandboxapi.rapyd.net/v1/ewallets -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "first\_name": "John", "last\_name": "Doe", "ewallet\_reference\_id": "2023-01-29b1", "metadata": {}, "type": "person", "contact": { "contact\_reference\_id": "johndoe2023", "phone\_number": "+3547826575", "email": "johndoe@rapyd.net", "first\_name": "John", "last\_name": "Doe", "mothers\_name": "Jane Smith", "contact\_type": "personal", "address": { "name": "John Doe", "line\_1": "123 Main Street", "line\_2": "", "line\_3": "", "city": "Anytown", "state": "NY", "country": "US", "zip": "12345", "phone\_number": "+14155551611", "metadata": {}, "canton": "", "district": "" }, "identification\_type": "DL", "identification\_number": "1234567890", "date\_of\_birth": "2000-11-22", "country": "IS", "nationality": "IS", "metadata": { "merchant\_defined": true } } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "e36924c2-91cf-4a42-ad78-c23e3ad7f1f6" }, "data": { "id": "cont\_88e387ef31488c0f4b385d157a27425a", "first\_name": "John", "last\_name": "Doe", "middle\_name": "", "second\_last\_name": "", "gender": "not\_applicable", "marital\_status": "not\_applicable", "house\_type": "", "contact\_type": "personal", "phone\_number": "+3547826575", "email": "johndoe@rapyd.net", "identification\_type": "DL", "identification\_number": "1234567890", "issued\_card\_data": { "preferred\_name": "", "transaction\_permissions": "", "role\_in\_company": "" }, "date\_of\_birth": "2000-11-22", "country": "IS", "nationality": "IS", "address": { "id": "address\_b6d52e34fffce3c20d6000dd6faea3a2", "name": "John Doe", "line\_1": "123 Main Street", "line\_2": "", "line\_3": "", "city": "Anytown", "state": "NY", "country": "US", "zip": "12345", "phone\_number": "+14155551611", "metadata": {}, "canton": "", "district": "", "created\_at": 1694069068 }, "ewallet": "ewallet\_ca8e764afff51baa58eb47a52da6b5b0", "created\_at": 1694069068, "metadata": { "merchant\_defined": true }, "business\_details": null, "compliance\_profile": 0, "verification\_status": "not verified", "send\_notifications": false, "mothers\_name": "Jane Smith", "contact\_reference\_id": "johndoe2023", "parent\_ewallet": null } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](wallet.html) * [Next](create-wallet.html#idp369330) --- # List Payout Method Types [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Disburse](rapyd-disburse-368669.html) * [Payout Method Type](payout-method-type.html) * List Payout Method Types * [Prev](payout-method-type.html) * [Next](list-payout-method-types.html#idp351337) ##### List Payout Method Types Retrieve a list of payout method types that you can use when creating a payout. The response returns one payout method type for each supported beneficiary country with the supported payout currencies. The response contains a list of objects. Each object includes a payout method type and its attributes. ### Note * The two-letter prefix of the payout method type matches the beneficiary country code. * This endpoint replaces the deprecated endpoints - `GET /v1/payouts/supported_types` and `GET /v1/payouts/payout_methods`. Rapyd will continue to support the deprecated endpoints until December 31, 2024. [###### Parameters](#idp351341_body) [###### Request Query Parameters](#idp351343_body) [###### Request Header Parameters](#idp351446_body) [###### Response Parameters](#idp351496_body) * /v1/payout\_method\_types * List Payout Method Types - Payout Currency Specified * curl -X get https://sandboxapi.rapyd.net/v1/payout\_method\_types?payout\_currency=USD -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * // Due to the length of the response, a shortened version is displayed. { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "2ea08d45-c91e-4417-874d-6b72c5500445" }, "data": \[\ {\ "payout\_method\_type": "xx\_mastercard\_card",\ "name": "Push funds to Mastercard Card",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": "/checkout/xx\_mastercard\_card.png",\ "category": "card",\ "beneficiary\_country": "SV",\ "sender\_country": "\*",\ "payout\_currencies": \[\ "USD"\ \],\ "sender\_entity\_types": \[\ "company",\ "individual"\ \],\ "beneficiary\_entity\_types": \[\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": null,\ "minimum\_amount": null,\ "payout\_currency": "USD"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "USD",\ "SGD",\ "HKD",\ "GBP",\ "EUR",\ "AUD"\ \],\ "estimated\_time\_of\_arrival": "The beneficiary will receive the funds within 3 hours."\ },\ {\ "payout\_method\_type": "xx\_mastercard\_card",\ "name": "Push funds to Mastercard Card",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": "/checkout/xx\_mastercard\_card.png",\ "category": "card",\ "beneficiary\_country": "US",\ "sender\_country": "\*",\ "payout\_currencies": \[\ "USD"\ \],\ "sender\_entity\_types": \[\ "company",\ "individual"\ \],\ "beneficiary\_entity\_types": \[\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": null,\ "minimum\_amount": null,\ "payout\_currency": "USD"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "USD",\ "SGD",\ "HKD",\ "GBP",\ "EUR",\ "AUD"\ \],\ "estimated\_time\_of\_arrival": "The beneficiary will receive the funds within 3 hours."\ },\ {\ "payout\_method\_type": "xx\_swift\_bank",\ "name": "Global SWIFT",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": "https://qaiconslib.rapyd.net/https://qaiconslib.rapyd.net/https://qaiconslib.rapyd.net/https://deviconslib.rapyd.net/https://deviconslib.rapyd.net/https://deviconslib.rapyd.net/https://deviconslib.rapyd.net/https://deviconslib.rapyd.net/https://deviconsli",\ "category": "bank",\ "beneficiary\_country": "AM",\ "sender\_country": "\*",\ "payout\_currencies": \[\ "USD"\ \],\ "sender\_entity\_types": \[\ "company"\ \],\ "beneficiary\_entity\_types": \[\ "company",\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": null,\ "minimum\_amount": null,\ "payout\_currency": "USD"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "USD",\ "SGD",\ "SEK",\ "NOK",\ "ISK",\ "HKD",\ "GBP",\ "EUR",\ "DKK",\ "CHF",\ "CAD",\ "AUD"\ \],\ "estimated\_time\_of\_arrival": "The beneficiary will receive the funds within 2 business days."\ },\ {\ "payout\_method\_type": "xx\_swift\_bank",\ "name": "Global SWIFT",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": "https://qaiconslib.rapyd.net/https://qaiconslib.rapyd.net/https://qaiconslib.rapyd.net/https://deviconslib.rapyd.net/https://deviconslib.rapyd.net/https://deviconslib.rapyd.net/https://deviconslib.rapyd.net/https://deviconslib.rapyd.net/https://deviconsli",\ "category": "bank",\ "beneficiary\_country": "AO",\ "sender\_country": "\*",\ "payout\_currencies": \[\ "USD"\ \],\ "sender\_entity\_types": \[\ "company"\ \],\ "beneficiary\_entity\_types": \[\ "company",\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": null,\ "minimum\_amount": null,\ "payout\_currency": "USD"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "USD",\ "SGD",\ "SEK",\ "NOK",\ "ISK",\ "HKD",\ "GBP",\ "EUR",\ "DKK",\ "CHF",\ "CAD",\ "AUD"\ \],\ "estimated\_time\_of\_arrival": "The beneficiary will receive the funds within 2 business days."\ },\ {\ "payout\_method\_type": "xx\_swift\_bank",\ "name": "Global SWIFT",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": "https://qaiconslib.rapyd.net/https://qaiconslib.rapyd.net/https://qaiconslib.rapyd.net/https://deviconslib.rapyd.net/https://deviconslib.rapyd.net/https://deviconslib.rapyd.net/https://deviconslib.rapyd.net/https://deviconslib.rapyd.net/https://deviconsli",\ "category": "bank",\ "beneficiary\_country": "AT",\ "sender\_country": "\*",\ "payout\_currencies": \[\ "USD"\ \],\ "sender\_entity\_types": \[\ "company"\ \],\ "beneficiary\_entity\_types": \[\ "company",\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": null,\ "minimum\_amount": null,\ "payout\_currency": "USD"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "USD",\ "SGD",\ "SEK",\ "NOK",\ "ISK",\ "HKD",\ "GBP",\ "EUR",\ "DKK",\ "CHF",\ "CAD",\ "AUD"\ \],\ "estimated\_time\_of\_arrival": "The beneficiary will receive the funds within 2 business days."\ }\ \] }   * List Payout Method Types - Multiple Query Filters * curl -X get https://sandboxapi.rapyd.net/v1/payout\_method\_types?payout\_currency=HKD&beneficiary\_entity\_type=individual&sender\_entity\_type=individual&category=bank -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "34ff4c8e-584b-4c21-9bd4-9a9628b771ab" }, "data": \[\ {\ "payout\_method\_type": "br\_zcscenario2b\_bank",\ "name": "br zcscenario2b bank",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": null,\ "category": "bank",\ "beneficiary\_country": "\*",\ "sender\_country": "\*",\ "payout\_currencies": \[\ "\*"\ \],\ "sender\_entity\_types": \[\ "individual"\ \],\ "beneficiary\_entity\_types": \[\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": 120000,\ "minimum\_amount": 12,\ "payout\_currency": "\*"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "\*"\ \],\ "estimated\_time\_of\_arrival": "The beneficiary will receive the funds within 3 hours."\ },\ {\ "payout\_method\_type": "hk\_chats\_bank",\ "name": "HK Bank Disburse via CHATS (RTGS)",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": "https://qaiconslib.rapyd.net/https://qaiconslib.rapyd.net/https://qaiconslib.rapyd.net/https://qaiconslib.rapyd.net/https://qaiconslib.rapyd.net/checkout/hk\_chats\_bank.png",\ "category": "bank",\ "beneficiary\_country": "HK",\ "sender\_country": "\*",\ "payout\_currencies": \[\ "HKD",\ "\*"\ \],\ "sender\_entity\_types": \[\ "individual"\ \],\ "beneficiary\_entity\_types": \[\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": 1000000000,\ "minimum\_amount": 1,\ "payout\_currency": "\*"\ },\ {\ "maximum\_amount": 1000000000,\ "minimum\_amount": 1,\ "payout\_currency": "HKD"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "USD",\ "SGD",\ "HKD",\ "GBP",\ "EUR",\ "AUD"\ \],\ "estimated\_time\_of\_arrival": "The beneficiary will receive the funds within few minutes."\ },\ {\ "payout\_method\_type": "hk\_fps\_bank",\ "name": "HK Bank Disburse via FPS (RTP) with bank account details",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": "/checkout/hk\_fps\_bank.png",\ "category": "bank",\ "beneficiary\_country": "hk",\ "sender\_country": "\*",\ "payout\_currencies": \[\ "HKD"\ \],\ "sender\_entity\_types": \[\ "individual"\ \],\ "beneficiary\_entity\_types": \[\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": 10000000,\ "minimum\_amount": 1,\ "payout\_currency": "HKD"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "USD",\ "SGD",\ "HKD",\ "GBP",\ "EUR"\ \],\ "estimated\_time\_of\_arrival": "The beneficiary will receive the funds within few minutes."\ },\ {\ "payout\_method\_type": "hk\_fps\_proxy\_bank",\ "name": "HK Bank and eWallet Disburse via FPS (RTP) with FPS ID, HKID, mobile number or email address",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": "/checkout/hk\_fps\_proxy\_bank.png",\ "category": "bank",\ "beneficiary\_country": "hk",\ "sender\_country": "\*",\ "payout\_currencies": \[\ "HKD"\ \],\ "sender\_entity\_types": \[\ "individual"\ \],\ "beneficiary\_entity\_types": \[\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": 10000000,\ "minimum\_amount": 1,\ "payout\_currency": "HKD"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "USD",\ "SGD",\ "HKD",\ "GBP",\ "EUR"\ \],\ "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method."\ },\ {\ "payout\_method\_type": "hk\_fps\_proxy\_rapydgw\_bank",\ "name": "HK Bank and eWallet Disburse via FPS (RTP) with FPS ID, HKID, mobile number or email address for RapydGW",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": null,\ "category": "bank",\ "beneficiary\_country": "HK",\ "sender\_country": "HK",\ "payout\_currencies": \[\ "HKD"\ \],\ "sender\_entity\_types": \[\ "company",\ "individual"\ \],\ "beneficiary\_entity\_types": \[\ "company",\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": 10000000,\ "minimum\_amount": 1,\ "payout\_currency": "HKD"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "HKD"\ \],\ "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method."\ },\ {\ "payout\_method\_type": "hk\_fps\_rapydgw\_bank",\ "name": "HK Bank Disburse via FPS (RTP) with bank account details for RapydGW",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": null,\ "category": "bank",\ "beneficiary\_country": "HK",\ "sender\_country": "HK",\ "payout\_currencies": \[\ "HKD"\ \],\ "sender\_entity\_types": \[\ "company",\ "individual"\ \],\ "beneficiary\_entity\_types": \[\ "company",\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": 10000000,\ "minimum\_amount": 1,\ "payout\_currency": "HKD"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "HKD"\ \],\ "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method."\ },\ {\ "payout\_method\_type": "il\_rapyd\_test\_nft\_bank",\ "name": "Bank Payout for NFT",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": null,\ "category": "bank",\ "beneficiary\_country": "\*",\ "sender\_country": "\*",\ "payout\_currencies": \[\ "\*"\ \],\ "sender\_entity\_types": \[\ "company",\ "individual"\ \],\ "beneficiary\_entity\_types": \[\ "company",\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": null,\ "minimum\_amount": null,\ "payout\_currency": "\*"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "\*"\ \],\ "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method."\ },\ {\ "payout\_method\_type": "il\_rapyd\_test\_qa\_bank",\ "name": "Rapyd IL bank test",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": "",\ "category": "bank",\ "beneficiary\_country": "il",\ "sender\_country": "IL",\ "payout\_currencies": \[\ "\*"\ \],\ "sender\_entity\_types": \[\ "individual"\ \],\ "beneficiary\_entity\_types": \[\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": null,\ "minimum\_amount": null,\ "payout\_currency": "\*"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "\*"\ \],\ "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method."\ },\ {\ "payout\_method\_type": "il\_shaharb444\_bank",\ "name": "shahar huge liron",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": null,\ "category": "bank",\ "beneficiary\_country": "AF",\ "sender\_country": "AF",\ "payout\_currencies": \[\ "\*"\ \],\ "sender\_entity\_types": \[\ "individual"\ \],\ "beneficiary\_entity\_types": \[\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": 3,\ "minimum\_amount": 2,\ "payout\_currency": "\*"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "AED"\ \],\ "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method."\ },\ {\ "payout\_method\_type": "qa\_regression22\_bank",\ "name": "qa regression22 bank",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": null,\ "category": "bank",\ "beneficiary\_country": "\*",\ "sender\_country": "\*",\ "payout\_currencies": \[\ "\*"\ \],\ "sender\_entity\_types": \[\ "company",\ "individual"\ \],\ "beneficiary\_entity\_types": \[\ "company",\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": null,\ "minimum\_amount": null,\ "payout\_currency": "\*"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "\*"\ \],\ "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method."\ },\ {\ "payout\_method\_type": "sg\_dbs\_bank",\ "name": "DBS Payments",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": "/checkout/sg\_dbs\_bank.png",\ "category": "bank",\ "beneficiary\_country": "SG",\ "sender\_country": "\*",\ "payout\_currencies": \[\ "HKD"\ \],\ "sender\_entity\_types": \[\ "individual"\ \],\ "beneficiary\_entity\_types": \[\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": 100000000,\ "minimum\_amount": 1,\ "payout\_currency": "HKD"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "USD",\ "SGD",\ "GBP",\ "EUR"\ \],\ "estimated\_time\_of\_arrival": "The beneficiary will receive the funds within few minutes."\ },\ {\ "payout\_method\_type": "us\_rapyd\_test\_qa\_bank",\ "name": "Rapyd US bank test",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": "",\ "category": "bank",\ "beneficiary\_country": "us",\ "sender\_country": "US",\ "payout\_currencies": \[\ "\*"\ \],\ "sender\_entity\_types": \[\ "individual"\ \],\ "beneficiary\_entity\_types": \[\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": null,\ "minimum\_amount": null,\ "payout\_currency": "\*"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "\*"\ \],\ "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method."\ },\ {\ "payout\_method\_type": "us\_test\_zc\_cash",\ "name": "QA test zc cash",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": "/checkout/us\_test\_zc\_cash.png",\ "category": "bank",\ "beneficiary\_country": "\*",\ "sender\_country": "\*",\ "payout\_currencies": \[\ "\*"\ \],\ "sender\_entity\_types": \[\ "individual"\ \],\ "beneficiary\_entity\_types": \[\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": null,\ "minimum\_amount": null,\ "payout\_currency": "\*"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "\*"\ \],\ "estimated\_time\_of\_arrival": "The beneficiary will receive the funds within 3 hours."\ },\ {\ "payout\_method\_type": "xx\_crossborder\_bank",\ "name": "Global SWIFT",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": null,\ "category": "bank",\ "beneficiary\_country": "HK",\ "sender\_country": "\*",\ "payout\_currencies": \[\ "HKD"\ \],\ "sender\_entity\_types": \[\ "individual"\ \],\ "beneficiary\_entity\_types": \[\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": null,\ "minimum\_amount": 1,\ "payout\_currency": "HKD"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "USD",\ "SGD",\ "SEK",\ "NOK",\ "ISK",\ "HKD",\ "GBP",\ "EUR",\ "DKK",\ "CHF",\ "CAD",\ "AUD"\ \],\ "estimated\_time\_of\_arrival": "The beneficiary will receive the funds within 2 business days."\ }\ \] } * List Payout Method Types - Estimated Time of Arrival * curl -X get https://sandboxapi.rapyd.net/v1/payout\_method\_types?payout\_currency=NZD&limit=1 -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "80dd735b-291e-49d9-ba87-bdc2fe94d97d" }, "data": \[\ {\ "payout\_method\_type": "nz\_ach\_bank",\ "name": "NZ Bank Disbursements",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": "/checkout/nz\_ach\_bank.png",\ "category": "bank",\ "beneficiary\_country": "nz",\ "sender\_country": "\*",\ "payout\_currencies": \[\ "NZD"\ \],\ "sender\_entity\_types": \[\ "company"\ \],\ "beneficiary\_entity\_types": \[\ "company",\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": null,\ "minimum\_amount": null,\ "payout\_currency": "NZD"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "USD",\ "NZD"\ \],\ "estimated\_time\_of\_arrival": "The beneficiary will receive the funds in about 1-2 business days."\ }\ }\ \ \ In this section:\ \ The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer.\ \ Search results\ --------------\ \ No results found\ \ * [Prev](payout-method-type.html)\ \ * [Next](list-payout-method-types.html#idp351337) --- # Get Payout Required Fields [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Disburse](rapyd-disburse-368669.html) * [Payout Method Type](payout-method-type.html) * Get Payout Required Fields * [Prev](list-payout-method-types.html#idp351337) * [Next](get-payout-required-fields.html#idp351710) ##### Get Payout Required Fields Retrieve the fields required to use a payout method type. The fields are returned as an array of objects. The name of each field appears in the `name` field of each object. Use this information for [Create Payout](create-payout.html "Create Payout") , [Create Sender](create-sender.html "Create Sender") , and [Create Beneficiary](create-beneficiary.html "Create Beneficiary") . ### Note * The fields returned by this method are required when you create a payout. If you create a payout with a sender or beneficiary that was created previously, you are responsible for choosing a sender and beneficiary that have all the fields required by the payout method. * This endpoint replaces the deprecated endpoint - `GET /v1/payouts/:payout_method_type/details` Rapyd will continue to support the deprecated endpoint until December 31, 2024. [###### Parameters](#idp351714_body) [###### Request Path Parameters](#idp351716_body) * * payout\_method\_type * The type of the payout method. Set to the name of a payout method listed in the response to [List Payout Method Types](list-payout-method-types.html "List Payout Method Types") . The two-letter prefix must match the beneficiary country code. [###### Request Query Parameters](#idp351726_body) * * beneficiary\_country * Country of the beneficiary. Two-letter ISO 3166-1 ALPHA-2 code. * * beneficiary\_entity\_type * Type of entity for the beneficiary. One of the following values: * **company** * **individual** * * payout\_amount * Amount of the payout, in units of the currency that the beneficiary is receiving. Decimal. * * payout\_currency * Currency received by the beneficiary. Three-letter ISO 4217 code. * * sender\_country * Country of the sender. Two-letter ISO 3166-1 ALPHA-2 code. * * sender\_currency * Currency that the sender is paying with. Three-letter ISO 4217 code. * * sender\_entity\_type * Type of entity for the sender. One of the following values: * **company** * **individual** [###### Request Header Parameters](#idp351785_body) [###### Response Parameters](#idp351835_body) * /v1/payout\_methods/:payout\_method\_type/required\_fields * Get Payout Required Fields * curl -X get https://sandboxapi.rapyd.net/v1/payout\_methods/xx\_swift\_bank/required\_fields?sender\_country=PH&sender\_currency=USD&beneficiary\_country=MX&payout\_currency=MXN&sender\_entity\_type=company&beneficiary\_entity\_type=individual&payout\_amount=251 -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "d60c2f93-065a-47a5-aef0-7bdb824fb5ab" }, "data": { "payout\_method\_type": "xx\_swift\_bank", "sender\_currency": "USD", "sender\_country": "\*", "sender\_entity\_type": "company", "beneficiary\_country": "MX", "payout\_currency": "MXN", "beneficiary\_entity\_type": "individual", "is\_cancelable": 0, "is\_location\_specific": 0, "is\_expirable": 0, "minimum\_expiration\_seconds": null, "maximum\_expiration\_seconds": null, "is\_online": null, "image": "/checkout/xx\_swift\_bank.png", "status": 1, "beneficiary\_required\_fields": \[\ {\ "name": "first\_name",\ "regex": "^.{1,20}",\ "is\_required": true,\ "type": "string",\ "description": "First name + Last name must not exceed 35 characters."\ },\ {\ "name": "last\_name",\ "regex": "^.{1,15}",\ "is\_required": false,\ "type": "string",\ "description": "First name + Last name must not exceed 35 characters"\ },\ {\ "name": "address",\ "regex": "^.{1,35}",\ "is\_required": true,\ "type": "string",\ "description": "Beneficiary street name ; building number"\ },\ {\ "name": "city",\ "regex": "^.{1,25}",\ "is\_required": true,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "state",\ "regex": "^.{1,15}",\ "is\_required": false,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "country",\ "regex": "^\[A-Z\]{2}$",\ "is\_required": true,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "postcode",\ "regex": "^.{1,10}",\ "is\_required": false,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "account\_number",\ "regex": "^.{1,34}$",\ "is\_required": true,\ "type": "string"\ },\ {\ "name": "bic\_swift",\ "regex": "^.{8,11}$",\ "is\_required": true,\ "type": "string"\ }\ \], "sender\_required\_fields": \[\ {\ "name": "company\_name",\ "regex": "^.{1,35}",\ "is\_required": true,\ "type": "string"\ },\ {\ "name": "address",\ "regex": "^.{1,35}",\ "is\_required": true,\ "type": "string",\ "description": "Beneficiary street name ; building number"\ },\ {\ "name": "city",\ "regex": "^.{1,25}",\ "is\_required": true,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "state",\ "regex": "^.{1,15}",\ "is\_required": false,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "country",\ "regex": "^\[A-Z\]{2}$",\ "is\_required": true,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "postcode",\ "regex": "^.{1,10}",\ "is\_required": false,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "purpose\_code",\ "regex": "investment\_income|salary|insurance\_payments|computer\_services|educational\_services|payment\_of\_goods|payment\_of\_services|Inward\_remittance",\ "is\_required": false,\ "type": "string",\ "allowed\_values": \[\ "investment\_income",\ "salary",\ "insurance\_payments",\ "computer\_services",\ "educational\_services",\ "payment\_of\_goods",\ "payment\_of\_services",\ "Inward\_remittance"\ \],\ "description": "Required only for sending to - China, India, South Korea, Philippines, Malaysia"\ }\ \], "payout\_options": \[\ {\ "name": "beneficiary\_country",\ "regex": "^\[A-Z\]{2}$",\ "is\_required": true,\ "type": "string",\ "description": "Country where the beneficiary account is held"\ },\ {\ "name": "description",\ "regex": "^.{1,140}",\ "is\_required": true,\ "type": "string",\ "description": "Payout purpose description"\ },\ {\ "name": "statement\_descriptor",\ "regex": "^.{1,140}",\ "is\_required": false,\ "type": "string",\ "description": "Information to be displayed in the beneficiary statement"\ }\ \], "minimum\_amount": null, "maximum\_amount": null, "batch\_file\_header": "payout\_method\_type,sender\_currency,payout\_currency,beneficiary.first\_name,beneficiary.last\_name,beneficiary.address,beneficiary.city,beneficiary.state,beneficiary.country,beneficiary.postcode,beneficiary.account\_number,beneficiary.bic\_swift,sender.company\_name,sender.address,sender.city,sender.state,sender.country,sender.postcode,sender.purpose\_code" } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](list-payout-method-types.html#idp351337) * [Next](get-payout-required-fields.html#idp351710) --- # Rapyd Wallet [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * Rapyd Wallet * [Prev](deleting-a-virtual-account.html#idp243971) * [Next](rapyd-wallet.html#idp243988) ### Rapyd Wallet Accept payments, send payouts, and issue cards all from your Rapyd Wallet account. | `Enterprise` [#### Build Digital Wallets with Rapyd's White-Labeled Solution](#idp243988_body) [Rapyd Wallet](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_rapyd_wallet "Rapyd Wallet") is designed to be a powerful financial hub for your business. When combined with other Rapyd API calls, Rapyd Wallet makes it possible for you to accept payments, fund payouts, and issue cards all from your Rapyd Wallet account. ![Rapyd-wallet-overview](image/16763ca3a82b2d.jpg) [#### Common Rapyd Wallet Use Cases](#idp243995_body) * Send and receive money from other wallets. * Send money to bank accounts. * Make payments for goods and services. * Create an in-country account to accept payments from foreign entities. * Store funds collected from outside sources. * Manage accounts in multiple currencies. [#### How the Rapyd Wallet Works](#idp244010_body) Rapyd Wallet is similar to a bank account, the difference is that you can easily move money into and out of your account using different currencies and payment methods. The Rapyd Wallet structure is built around the “client wallet” and the “user wallet”. Using this simple yet robust structure, the use cases are limitless. For example, if you had an online marketplace you would create a client wallet which would act as your primary business account. For each seller using your marketplace platform, you could create separate user wallets that are visible from your primary account or client wallet. The user wallets can accept and receive payments based on your design requirements. For each sale your sellers completes they can accept the payment from their customer into their user wallet, and based on your requirements, the user wallet could send all or a percentage of that payment to your primary account or client wallet. The Rapyd Wallet model can apply to many use cases, it can help you easily collect and make payments to your workforce - whether they are full time, part time, or contractors - you can easily push and pull funds into or out of their wallet accounts. And, the best part is, if your team is global they can choose what payment method type or currency that they would like to accept payments in. [#### Optimize Global Cash Flows](#idp244016_body) Rapyd Wallet can set your business apart and enable you to pay employees, contractors, sellers on your marketplace or accept payments in return. All of the features of Rapyd Disburse and Rapyd Collect can be layered into your wallet, features such as: * Send and receive various currencies using FX capabilities across Rapyd Disburse and Collect * Collect payments from multiple parties with our split payments feature. * Generate subscriptions, or recurring payments, for short and long term services that your business provides. [#### Start Building](#idp244026_body) There are two options for you to start building your first Rapyd Wallet Account: [##### Rapyd Wallet API](#idp244029_body) Dive in and start using the [Rapyd Wallet](rapyd-wallet-368670.html "Rapyd Wallet") API to build your own custom [white-label](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_white-label "White-label") wallet experience. [##### Client Portal](#idp244034_body) The Rapyd Client Portal is a comprehensive account management tool for you to view and manage your entire white-labeled wallet structure. The portal provides you with visibility into all of your wallet accounts, transactions, as well as identity verification, and contacts associated with your wallet accounts. Read more about managing your Wallets using the Client Portal [here](rapyd-wallet.html "Rapyd Wallet") . In this section: In Rapyd, an electronic wallet for receiving, storing and disbursing funds. A product or service that can be rebranded by someone else. Search results -------------- No results found * [Prev](deleting-a-virtual-account.html#idp243971) * [Next](rapyd-wallet.html#idp243988) --- # Funding Your Account via Client Portal [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [My Account](my-account.html) * Funding Your Account via Client Portal * [Prev](viewing-client-wallet-balances.html#idp250805) * [Next](funding-your-account-via-client-portal.html#idp250821) #### Funding Your Account via Client Portal Rapyd enables you to top up your company's client wallet via the Client Portal. This is a four-step process: 1. You select the Rapyd bank account via Client Portal. 2. You transfer the money to the Rapyd bank account. 3. You submit the details and proof via Client Portal. 4. Rapyd processes the transaction and moves the funds to the client wallet. [##### Use Case Overview](#idp250821_body) For example, a finance manager wants to top up the company's Rapyd wallet account with **1,000.00 GBP**. The finance manager uses the Client Portal's **Funding Requests** page to do this task quickly and seamlessly. When the funding is completed, the company's wallet account balance is topped up with **1,000.00 GBP**, and a confirmation email is sent to the manager. ### Note This process is the only way to fund your client wallet, and is available in the production environment of the Client Portal for users with Owner or Administrator privileges. [##### Funding Your Account via Client Portal Workflow](#idp250830_body) Let’s look at the highlights of your workflow. ###### Step 1: Currency and Bank Account Selection 1. You navigate to **Settings** > **Overview** > **Funding Requests** ![648088f276747.png](image/16763ca413304f.png) ### Note The **Funding Requests** page only appears in the Client Portal of the production environment, for users with Owner or Administrator privileges. 2. You select **Bank Accounts** . The Rapyd Bank Accounts section appears ![648088f5514c5.png](image/16763ca413d2cd.png) 3. You search for currency **GBP** . 4. You click **World Bank**. World Bank Details Appear. ![648088f7ae00c.png](image/16763ca4146c9a.png) 5. You collect the **Account Number** information to transfer funds to. ###### Step 2: Transfer of Funds 1. You transfer **1,000.00 GBP** from your company bank account to the Rapyd bank account. 2. Your company's bank sends you a **Proof of Transfer** file. ###### Step 3: Filling in the Details and Submitting Proof 1. Select **Request Funds** on the Funding Request page. The **Account Funding Request** form appears. 2. Enter the details of the transfer on the Account Funding Request form. * **1,000.00** in the **Amount to Fund** text box. * **GBP** in the **Currency** dropdown menu. * **World Bank** in the **Rapyd Bank Account** dropdown menu. 3. You upload the **Proof of Transfer** file and click **Submit**. ### Note The **Proof of Transfer** file must be in one of the following formats: JPG, PNG, JPEG, PDF, TIF. ![648088f99f7a0.png](image/16763ca414ffa1.png) 4. A success window appears. ![648088fbc93a9.png](image/16763ca4158fbf.png) ###### Step 4: Receive Confirmation 1. Rapyd notifies you that that funding status of the transfer is **Pending**. This status indicates that Rapyd is processing the request. ![648088fdc5e5c.png](image/16763ca41622e2.png) 2. Rapyd inspects details of funding, and then tops up your account with **1,000.00****GBP** . The status of the funding changes to **Approved** and the company's wallet account is topped up with **1,000.00 GBP**. An email is sent to you indicating the latest top-up to the company's client wallet. In this section: Search results -------------- No results found * [Prev](viewing-client-wallet-balances.html#idp250805) * [Next](funding-your-account-via-client-portal.html#idp250821) --- # Complete Payout [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Disburse](rapyd-disburse-368669.html) * [Payout](payout.html) * Complete Payout * [Prev](update-payout.html#idp354687) * [Next](complete-payout.html#idp355350) ##### Complete Payout Use this method in the sandbox to simulate the action of a third party that is required for completing the payout process. Relevant when the status of the payout is **Created**. **Prerequisites:** * [Create Wallet](create-wallet.html "Create Wallet") * [Add Funds to Wallet Account](add-funds-to-wallet-account.html "Add Funds to Wallet Account") * [Create Payout](create-payout.html "Create Payout") This method triggers the [Payout Completed Webhook](payout-completed-webhook.html "Payout Completed Webhook") . This webhook contains the same information as the response. [###### Parameters](#idp355354_body) [###### Request Path Parameters](#idp355356_body) * * amount * The payout amount. Decimal, including the correct number of decimal places for the currency exponent, as defined in ISO 2417:2015. * * payout * ID of the payout. String starting with **payout\_**. [###### Request Header Parameters](#idp355372_body) [###### Response Parameters](#idp355432_body) * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var payout = "payout\_cd35fbe8dc6fd7c2e67d44ad53a4367d"; var amount = "10"; string result = RapydApiRequestSample.Utilities.MakeRequest("POST", $"/v1/payouts/complete/{payout}/{amount}", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = {}; const result = await makeRequest( 'POST', '/v1/payouts/complete/payout\_cd35fbe8dc6fd7c2e67d44ad53a4367d/10', body ); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $object = make\_request('post', '/v1/payouts/complete/payout\_cd35fbe8dc6fd7c2e67d44ad53a4367d/10'); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request payout = 'payout\_cd35fbe8dc6fd7c2e67d44ad53a4367d' amount = 10 results = make\_request(method='post', path=f'/v1/payouts/complete/{payout}/{amount}') pprint(results) * /v1/payouts/complete/:payout/:amount * Complete Payout * curl -X post https://sandboxapi.rapyd.net/v1/payouts/complete/payout\_f85eca81e10e2a0bd6bf0ac5ed35a926/2000 -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "61a91ad4-d805-4208-9ac5-272ffffc7b00" }, "data": { "id": "payout\_f85eca81e10e2a0bd6bf0ac5ed35a926", "payout\_type": "bank", "payout\_method\_type": "mx\_abc\_capital\_bank", "amount": 39044.24, "payout\_currency": "MXN", "sender\_amount": 2000, "sender\_currency": "USD", "status": "Completed", "sender\_country": "US", "sender": { "id": "sender\_94e84ba869e20da70be5b0c0027c889d", "country": "US", "entity\_type": "company", "address": "address 2", "name": "Rapyd", "postcode": "3333", "city": "Amsterdam", "phone\_number": "19019044444", "company\_name": "Rapyd", "currency": "USD", "identification\_value": "unc\_num\_123333", "province": "Amsterdam", "occupation": "Ridesharing" }, "beneficiary\_country": "MX", "beneficiary": { "id": "beneficiary\_d75798c2168f04a552542880ba772966", "last\_name": "Doe", "first\_name": "Jane", "country": "MX", "entity\_type": "individual", "name": "Jane Doe", "currency": "MXN", "category": "bank" }, "fx\_rate": 19.522119, "instructions": { "name": "instructions", "steps": \[\ {\ "step1": "The funds will be transferred to the provided account details of the beneficiary ."\ }\ \] }, "instructions\_value": {}, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_c1943cfeda5f98247ab117e5d2648861",\ "amount": 2000,\ "percent": 100\ }\ \], "metadata": { "merchant\_defined": true }, "description": "Salary", "created\_at": 1607957007, "payout\_fees": null, "expiration": null, "merchant\_reference\_id": null, "paid\_at": "1607957177", "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 2000, "statement\_descriptor": null } } * Complete Payout - Estimated Time of Arrival * curl -X post https://sandboxapi.rapyd.net/v1/payouts/complete/payout\_35184394216898a43740eaaaf8cc5ebb/2.24 -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "cd36118e-e127-40c2-8861-fba373fdb050" }, "data": { "id": "payout\_35184394216898a43740eaaaf8cc5ebb", "payout\_type": "bank", "payout\_method\_type": "eu\_sepa\_bank", "amount": 2, "payout\_currency": "EUR", "sender\_amount": 2.24, "sender\_currency": "USD", "status": "Completed", "sender\_country": "DK", "sender": { "id": "sender\_9182821b8c252d18b7d5f83d50cc21ae", "country": "DK", "entity\_type": "company", "name": "Jane Doe", "company\_name": "Acme", "currency": "USD" }, "beneficiary\_country": "AT", "beneficiary": { "id": "beneficiary\_9acc72a52b94dfb7f2d6fb3d410943db", "last\_name": "Doe", "first\_name": "John", "country": "AT", "entity\_type": "individual", "name": "John Doe", "currency": "EUR" }, "fx\_rate": 0.8943885, "instructions": \[{\ "name": "instructions",\ "steps": \[{\ "step1": "The funds will be transferred to the provided account details of the beneficiary."\ }\ \]\ }\ \], "instructions\_value": {}, "ewallets": \[{\ "ewallet\_id": "ewallet\_a5d0ff1865fe71967d64a294dbd1de22",\ "amount": 2.24,\ "percent": 100\ }\ \], "metadata": {}, "description": null, "created\_at": 1680093715, "payout\_fees": null, "expiration": null, "merchant\_reference\_id": null, "paid\_at": "1680093729", "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 2, "statement\_descriptor": null, "gc\_error\_code": null, "estimated\_time\_of\_arrival": "The beneficiary will receive the funds in a few minutes." } } * Complete Payout - with card * curl -X post https://sandboxapi.rapyd.net/v1/payouts/complete/payout\_9fc2a39187c00674cdd50221edbed5c2/10 -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "9775c2c3-38fc-42c7-8135-645f3e021fec" }, "data": { "id": "payout\_9fc2a39187c00674cdd50221edbed5c2", "payout\_type": "card", "payout\_method\_type": "ua\_general\_card", "amount": 10, "payout\_currency": "UAH", "sender\_amount": 0.25, "sender\_currency": "USD", "status": "Completed", "sender\_country": "AU", "sender": { "id": "sender\_c109585bb9085607d544dcdf18bfaf85", "last\_name": "Doe", "country": "AU", "entity\_type": "company", "address": "123 Maple street", "name": "Jane Doe", "city": "Any town", "phone\_number": "3218900123", "company\_name": "4 Diamonds Limo service", "currency": "USD", "identification\_value": "R1391230" }, "beneficiary\_country": "UA", "beneficiary": { "id": "beneficiary\_0fe3f4d9a37d31001dcef109206f83ab", "last\_name": "Doe", "first\_name": "John", "country": "UA", "entity\_type": "individual", "name": "John Doe", "phone\_number": "0231920712", "currency": "UAH", "bin\_details": { "type": "CREDIT", "brand": "VISA", "level": "STANDARD", "issuer": "First Bank", "country": "AR", "bin\_number": "589562" }, "card\_expiration\_year": "26", "card\_expiration\_month": "10", "card\_number": "5650" }, "fx\_rate": 39.8891626842, "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "The funds will be transferred to the provided card details of the beneficiary."\ }\ \]\ }\ \], "instructions\_value": {}, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_f69bdf976830363ec0146418f31ea4c1",\ "amount": 0.25,\ "percent": 100\ }\ \], "metadata": {}, "description": "Expenses", "created\_at": 1721645048, "payout\_fees": null, "expiration": null, "merchant\_reference\_id": null, "paid\_at": "1721645465", "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 10, "statement\_descriptor": null, "gc\_error\_code": null, "batch\_file": null } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. A numeric identifier for financial institutions. It appears as the first four to six digits on a payment card. Search results -------------- No results found * [Prev](update-payout.html#idp354687) * [Next](complete-payout.html#idp355350) --- # Deposit Completed Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Wallet](rapyd-wallet-368670.html) * [Virtual Account](virtual-account.html) * [Virtual Account Webhooks](virtual-account-webhooks.html) * Deposit Completed Webhook * [Prev](virtual-account-webhooks.html) * [Next](virtual-account-status-webhook.html) ###### Deposit Completed Webhook The **Deposit Completed** webhook is sent when a deposit to a virtual account is completed by the action of a third party. In the sandbox, [Simulate a Bank Transfer to a Virtual Account](simulate-a-bank-transfer-to-a-virtual-account.html "Simulate a Bank Transfer to a Virtual Account") simulates the third-party action and triggers this webhook. [###### Parameters](#idp386692_body) [###### Webhook Header Parameters](#idp386694_body) [###### Webhook Root Parameters](#idp386734_body) [###### Webhook Data Parameters](#idp386807_body) * ISSUING\_DEPOSIT\_COMPLETED Webhook * { "id": "wh\_fddb403fa8190a56b4439bf9ccea4ba6", "data": { "bank\_account": { "bic": "DHBKHKHH", "bank": "DBS Bank (Hong Kong) Limited", "address": "G/F, The Center, 99 Queen''s Road Central, Central, Hong Kong", "country": "Hong Kong", "bank\_code": "016", "branch\_code": "478", "country\_iso": "HK", "account\_number": "7981378115932954", "beneficiary\_name": "John Doe", "requested\_currency": null }, "ewallet": "ewallet\_5c148fcf040282f80907026f6030cce9", "amount": 101, "currency": "HKD", "issued\_account\_id": "issuing\_1a70c234e6ba03fc01af430d9f4151a3", "issuing\_transaction\_id": "isutran\_a540bbda57fdfe15c6d78807054e80d6", "remitter\_information": { "name": "DBS TEST CHATS", "account\_id": "123456789", "bank\_code": "", "remitter\_reference": "ICC202209091827" }, "original\_amount": 101, "original\_currency": "HKD", "fx\_rate": 1 }, "type": "ISSUING\_DEPOSIT\_COMPLETED", "status": "NEW", "created\_at": 1725152506, "extended\_timestamp": 1725152506329, "trigger\_operation\_id": "4b69ac69-e73e-4194-956b-31ee77cd8a80" } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](virtual-account-webhooks.html) * [Next](virtual-account-status-webhook.html) --- # Defining a Webhook Endpoint [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Developers](developers.html) * Defining a Webhook Endpoint * [Prev](developers.html#idp252415) * [Next](defining-a-webhook-endpoint.html#idp252431) #### Defining a Webhook Endpoint You can define a URL that receives all webhooks from the Rapyd environment and select each webhook that is relevant to your operations. This procedure requires Owner or Administrator privileges. [##### How to Define a Webhook Endpoint](#idp252431_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Developers** > **Webhooks** > **Management**. ![defining-webhook-flow-1.png](image/16763ca438ded7.png) 2. Tap the **Edit URL** icon at the top right of the page. 3. In the **URL** field, type the URL that you want Rapyd to send webhooks to. Rapyd recommends HTTPS endpoints. ![defining-webhook-flow-2.png](image/16763ca4397055.png) 4. Click the **Save URL** button. 5. Under **Collect** subsection, do the following: * To cause an event to trigger a webhook, check the box next to the name of the event. * To prevent an event from triggering a webhook, uncheck the box next to the name of the event. 6. You can use the **Search** field to filter the list of events. 7. You can click the caret symbol to expand or collapse each subsection. ![defining-webhook-flow-3.png](image/16763ca439fe16.png) 8. When you have selected your desired webhook events, click the **Save** button in the middle right corner of the page. ![defining-webhook-flow-4.png](image/16763ca43a8bfc.png) 9. The **Save Changes** dialog box appears. ![defining-webhook-flow-5.png](image/16763ca43b19e6.png) 10. Click **Save**. In this section: Search results -------------- No results found * [Prev](developers.html#idp252415) * [Next](defining-a-webhook-endpoint.html#idp252431) --- # Payout Completed Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Disburse](rapyd-disburse-368669.html) * [Payout](payout.html) * [Payout Webhooks](payout-webhooks.html) * Payout Completed Webhook * [Prev](payout-canceled-webhook.html) * [Next](payout-created-webhook.html) ###### Payout Completed Webhook The **PAYOUT\_COMPLETED** webhook is triggered when the beneficiary receives the payout funds. If the payout method requires the action of a third party to complete the payout process, this webhook is triggered when the last required third-party action is completed. In the sandbox, [Complete Payout](complete-payout.html "Complete Payout") simulates the third-party action and triggers this webhook. [###### Parameters](#idp358675_body) [###### Webhook Header Parameters](#idp358677_body) [###### Webhook Root Parameters](#idp358717_body) [###### Webhook Data Parameters](#idp358790_body) * PAYOUT\_COMPLETED Webhook * { "id": "wh\_a49289ac37830ebfa1598055cb36d1db", "type": "PAYOUT\_COMPLETED", "data": { "id": "payout\_b1484faef5c9fed8a74cac9627302323", "error": null, "amount": 50, "sender": { "id": "sender\_9a2323b80dd74c7ec80928d6865f0597", "country": "US", "currency": "AUD", "entity\_type": "individual" }, "status": "Completed", "fx\_rate": 0.647184, "paid\_at": "1681044108", "ewallets": \[{\ "amount": 162.24,\ "percent": 100,\ "ewallet\_id": "ewallet\_c0e0056779660bd15e208239d88f17e2"\ }\ \], "metadata": {}, "created\_at": 1681044108, "expiration": null, "beneficiary": { "id": "beneficiary\_98340b1ffbe10f4aec72540a9f7d8d01", "name": "John Doe", "country": "US", "currency": "USD", "card\_number": "1111", "entity\_type": "individual", "company\_name": "Acme", "card\_expiration\_year": "24", "card\_expiration\_month": "12" }, "description": null, "paid\_amount": 50, "payout\_fees": { "fx\_fee": { "value": 2, "calc\_type": "gross" }, "net\_fees": 0, "gross\_fees": 84.98, "transaction\_fee": { "value": 54, "fee\_type": "absolute", "calc\_type": "gross" } }, "payout\_type": "card", "instructions": { "name": "instructions", "steps": \[{\ "step1": "The funds will be transferred to the provided account details of the beneficiary ."\ }\ \] }, "gc\_error\_code": null, "sender\_amount": 162.24, "sender\_country": "US", "identifier\_type": null, "payout\_currency": "USD", "sender\_currency": "AUD", "identifier\_value": null, "instructions\_value": {}, "payout\_method\_type": "us\_debit\_visa\_card", "beneficiary\_country": "US", "statement\_descriptor": null, "merchant\_reference\_id": "", "estimated\_time\_of\_arrival": "The beneficiary will receive the funds in due course." }, "trigger\_operation\_id": "749f986b-b8ae-471c-aced-bf4cd665ce7c", "status": "NEW", "created\_at": 1681044108,   "extended\_timestamp": 1681044108384 } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. A numeric identifier for financial institutions. It appears as the first four to six digits on a payment card. Search results -------------- No results found * [Prev](payout-canceled-webhook.html) * [Next](payout-created-webhook.html) --- # API Reference [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * API Reference * [Prev](using-the-virtual-terminal.html#idp269440) * [Next](api-reference.html#idp269547) API Reference ------------- Technical information for developers. Methods, parameters, webhooks, and error codes for Rapyd products. Also see [Product Guide](product-guide.html "Product Guide") . For recent updates, see [API Changelog](api-changelog.html "API Changelog") . API Methods en/rapyd-collect-363484.html Collect Collect funds from many different payment sources and transfer it to Rapyd Wallets - Payments, payment methods, subscriptions, checkout pages, escrows, and refunds. en/rapyd-disburse-368669.html Disburse Transfer money from a Rapyd Wallet to a beneficiary outside the Rapyd system. en/rapyd-wallet-368670.html Wallet The focal point for receiving, storing, and sending money. Each wallet holds one or more currency accounts. en/rapyd-issuing-365115.html Card Issuing Provides bank cards funded by the Rapyd Wallet. Transactions are authorized by Rapyd or the client, and are subject to Rapyd Protect and compliance rules. en/rapyd-verify-386565.html Rapyd Verify Verification services for onboarding and card issuing. en/rapyd-protect.html Rapyd Protect Internal detection and prevention tools for all transactions. Developer Resources en/information-security.html Information Security PCI standards, message security and idempotency. en/authentication.html Authentication Signatures and header parameters. en/code-samples.html Code Samples Understanding code samples in Rapyd documentation. en/webhooks.html Webhooks Callback messages from Rapyd to the client, triggered by internal or external events. en/error-messages.html Error Messages Error codes and messages relevant to multiple products. List of links to errors for individual products. en/resource-methods.html Resource Methods FX rates, countries, currencies, and POS locations. ### Resources for Testing in Sandbox | | | | --- | --- | | [Testing for Payment API](testing-for-payment-api.html "Testing for Payment API") | Simulating payments with 3DS. Simulating errors. Simulating Rapyd Verify application responses | | [Testing for Payout API](testing-for-payout-api.html "Testing for Payout API") | Simulating Quarantine Under Review webhook. Bank account numbers for testing. | | [Sandbox Funds](sandbox-funds.html "Sandbox Funds") | Changing the amount of funds in a Rapyd Wallet. | | [Sample Image](sample-image.html "Sample Image") | A sample image for use in methods that require an image. | In this section: Search results -------------- No results found * [Prev](using-the-virtual-terminal.html#idp269440) * [Next](api-reference.html#idp269547) --- # Wallet Features [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Wallet](rapyd-wallet.html) * Wallet Features * [Prev](funding-a-wallet.html#idp244264) * [Next](wallet-features.html#idp244275) #### Wallet Features Powerful account features to manage cash flow. | `Enterprise` The [Rapyd Wallet](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_rapyd_wallet "Rapyd Wallet") features are designed to help you track and manage your cash flow. Get a complete view into all of your balances, move funds between wallets, and use foreign exchange to accept and send funds in any currency. Plus, every important transaction detail is accessible using Rapyd’s robust ledger. [##### Balances](#idp244275_body) With multiple balance types, Rapyd Wallet provides visibility into all of your funds so you can manage your cash flow more effectively. There are three balance types: * **Available balance** - available funds for immediate use. * **Received balance** - total amount that has been collected but has not yet settled. * **Reserve account** - required balance to cover chargebacks, returns, and other items. [##### Transfer Funds Between Wallets](#idp244289_body) Transfer funds in real-time, Instantly credit and debit any user wallet account from your client wallet account. This is a great feature for collecting fees from customer or seller user wallet accounts, or transferring money to a vendor. [##### Rapyd Ledger](#idp244292_body) Rapyd’s ledger tracks all transaction data, giving you complete visibility into your cash inflow and outflow. In this section: In Rapyd, an electronic wallet for receiving, storing and disbursing funds. Search results -------------- No results found * [Prev](funding-a-wallet.html#idp244264) * [Next](wallet-features.html#idp244275) --- # Developer Resources [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * Developer Resources * [Prev](initiate-merchant-query-errors.html) * [Next](developer-resources.html#UUID-d23f7933-c265-3089-7283-b384effbe867_section-idm4589043191120033831385499427) ### Developer Resources Rapyd provides the following resources to help developers test and implement their applications. #### Quickstart * [Rapyd Wallet Architecture](rapyd-wallet-architecture.html "Rapyd Wallet Architecture") - An overview of how money moves into and out of the Rapyd wallet, * [Set Up Your Account](set-up-your-account.html "Set Up Your Account") - Use Rapyd's sandbox, and set up a free account. * [Access Keys](access-keys.html "Access Keys") - Use Rapyd's API with Postman or your own code, you need access keys #### General Information * [Information Security](information-security.html "Information Security") - Rapyd handles and maintains sensitive information in accordance with the most stringent PCI standards. * [Localization Methods](localization-methods.html "Localization Methods") - An API call that returns a list of the languages supported for customer-facing interfaces. * [Metadata](metadata.html "Metadata") - Contains custom data defined by the client, in the format of a JSON object. #### System Architecture * [Error Messages](error-messages.html "Error Messages") - When the requested operation cannot be completed, Rapyd returns an error message. * [Webhooks](webhooks.html "Webhooks") - Callback messages from Rapyd to the client, triggered by internal or external events. #### Integration Tools * [Authentication](authentication.html "Authentication") - Messages between the client and Rapyd are authenticated with the values of specific header parameters. * [Code Samples](code-samples.html "Code Samples") - Understanding code samples in Rapyd documentation. * [Environments](environments.html "Environments") - Production and sandbox environments and their base URLs. * [Testing for Payment API](testing-for-payment-api.html "Testing for Payment API") - Methods for simulating errors, disputes and 3DS authentication. * [Testing for Payout API](testing-for-payout-api.html "Testing for Payout API") - Account numbers for testing. Simulating quarantine under review. * [Sandbox Funds](sandbox-funds.html "Sandbox Funds") - Topping up the wallet and removing funds. * [Sample Image](sample-image.html "Sample Image") - Useful for API methods that require an image. * [Resource Methods](resource-methods.html "Resource Methods") - API queries for languages, countries, currencies, FX rates, and locations. #### Rapyd Collect * [Rapyd Collect](rapyd-collect-542537.html "Rapyd Collect") - Collect a payment from a customer and deposit it into one or more Rapyd Wallets. The how-to sections explain Rapyd Collect capabilities. #### Rapyd Wallet * [Rapyd Wallet](rapyd-wallet-542958.html "Rapyd Wallet") - A white-label digital wallet.The how-tos explain Rapyd Wallet capabilities. In this section: Search results -------------- No results found * [Prev](initiate-merchant-query-errors.html) * [Next](developer-resources.html#UUID-d23f7933-c265-3089-7283-b384effbe867_section-idm4589043191120033831385499427) --- # Authentication [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Developer Resources](developer-resources.html) * Authentication * [Prev](request-rate-limits.html) * [Next](header-parameters.html) #### Authentication Most messages between the client and Rapyd are authenticated with the values of specific header parameters. * REST requests and webhooks contain header parameters for authentication of the messages. See [Header Parameters](header-parameters.html "Header Parameters") . * The `signature` header parameter for REST requests is calculated according to a specific formula. See [Request Signatures](request-signatures.html "Request Signatures") . * The `signature` header parameter for webhooks is calculated according to a specific formula. The client can use this information as an additional layer of protection. See [Webhook Authentication](webhook-authentication.html "Webhook Authentication") . REST responses from Rapyd do not contain headers. ### Note The formula for calculating the `signature` header parameter differs between REST requests and webhooks. The webhook formula excludes the HTTP method. In this section: Search results -------------- No results found * [Prev](request-rate-limits.html) * [Next](header-parameters.html) --- # Header Parameters [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Developer Resources](developer-resources.html) * [Authentication](authentication.html) * Header Parameters * [Prev](authentication.html) * [Next](request-signatures.html) ##### Header Parameters REST requests and webhooks contain header parameters for authentication of the messages. The following headers appear in REST requests in the Payments platform: * `access_key` - Unique access key provided by Rapyd for each authorized user. Required. For more information, see [Developers](developers.html "Developers") . * `api_version` - see [Versioning for API Methods](versioning-for-api-methods.html "Versioning for API Methods") . * `Content-Type` - Indicates that the data appears in JSON format. Required. Always set to **application/json**. * `idempotency` - A unique string to protect against duplicate transactions. Optional. For more information, see [Idempotency](idempotency.html "Idempotency") . * `salt` - Salt for the request signature. A random string for each request. Recommended length: 8-16 digits, letters and special characters. Required. * `signature` - Signature calculated for each message individually. Required. * For REST requests, see [Request Signatures](request-signatures.html "Request Signatures") . * For webhooks, see [Webhook Authentication](webhook-authentication.html "Webhook Authentication") . * `timestamp` - The time of the request, in [Unix time](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_unix_time "Unix time") (seconds). Required. The Rapyd platform is synchronized to the actual current time, as defined by public [NTP](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_ntp "Network Time Protocol") servers. The timestamp must be synchronized to the actual current time, or less than 60 seconds before the actual current time. ### Note In the Point-of-Sale platform, each method has its own headers. See [Point-of-Sale](point-of-sale.html "Point-of-Sale") . In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. An industry-standard protocol for synchronizing clocks of computers and telephones. Search results -------------- No results found * [Prev](authentication.html) * [Next](request-signatures.html) --- # Developers [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * Developers * [Prev](downloading-an-audit-log-report.html#idp252393) * [Next](developers.html#idp252402) ### Developers Access your secret key and your access key. [#### Developer Tab](#idp252402_body) 1. Sign into the Client Portal as described in [Singing into the Client Portal](signing-in-to-the-client-portal.html "Signing In to the Client Portal") . Under the developer tab you will find your production secret key and your access key. If you have the sandbox button turned on, you will find the secret key and access key for your sandbox account. You can also define your callback URL and the events that will trigger the webhook. * [Defining a Webhook Endpoint](defining-a-webhook-endpoint.html "Defining a Webhook Endpoint") - Configure webhooks. ##### View Your Sandbox Credentials 1. In the box for the key you want, click the copy icon (). The value is copied to your clipboard. ![648089992eec1.png](image/16763ca43822f2.png) **Note**: To view Production Credentials and Webhooks, switch off Sandbox mode. In this section: Search results -------------- No results found * [Prev](downloading-an-audit-log-report.html#idp252393) * [Next](developers.html#idp252402) --- # Webhook Authentication [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Developer Resources](developer-resources.html) * [Authentication](authentication.html) * Webhook Authentication * [Prev](request-signatures.html#idp410111) * [Next](environments.html) ##### Webhook Authentication The `signature` header parameter for webhooks is calculated according to a specific formula. You can verify the integrity of the webhook message by calculating the signature yourself and comparing it with the value you received in the webhook. If the values do not match, contact [Rapyd Client Support](https://support.rapyd.net) . Calculation of Signature The signature is calculated as a hash of a concatenation of specific strings, according to the following formula: **signature = BASE64 ( HASH ( url\_path + salt + timestamp + access\_key + secret\_key + body\_string ) )** where: * **BASE64** is a Base-64 encoding algorithm. * **HASH** is HMAC-SHA256. * **url\_path** is the entire URL that was configured for your company to receive webhooks. See [Defining a Webhook Endpoint](defining-a-webhook-endpoint.html "Defining a Webhook Endpoint") . * **salt** is a unique random string for the webhook. * **timestamp** is the time the webhook was sent, in [Unix time](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_unix_time "Unix time") (seconds). The Rapyd platform is synchronized to the actual current time, as defined by public [NTP](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_ntp "Network Time Protocol") servers. * **access\_key** is the access key for your organization, assigned by Rapyd. You can get this value from the Client Portal. See [Developers](developers.html "Developers") . * **secret\_key** is the secret key for your organization, assigned by Rapyd. You can get this value from the Client Portal. See [Developers](developers.html "Developers") . ### Warning The secret key is like a password, and is transmitted only as part of the calculated signature. Do not share it with your customers or partners, and do not transmit it in plaintext. * **body\_string** is a valid JSON string. ### Note Different languages handle Base-64 encoding differently. You must adequately test your code so that you are using all the correct Base-64 options to validate the signatures that Rapyd sends. Related Information * [Authentication](authentication.html "Authentication") - Describes the formula for calculating signatures for requests to the Rapyd platform. Provides code examples. In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. An industry-standard protocol for synchronizing clocks of computers and telephones. Search results -------------- No results found * [Prev](request-signatures.html#idp410111) * [Next](environments.html) --- # Transfer Funds Between Wallets [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Wallet](rapyd-wallet-368670.html) * [Wallet Transaction](wallet-transaction.html) * Transfer Funds Between Wallets * [Prev](wallet-transaction.html) * [Next](transfer-funds-between-wallets.html#idp377776) ##### Transfer Funds Between Wallets Transfer funds between Rapyd Wallets. If the destination wallet does not have an account for the specified currency, the account is created. If the source wallet does not have enough funds in the account for the specified currency, the transfer fails. The status of the transfer is **PEN** while the transfer is pending and the transferee has not accepted the transfer. This method triggers [Transfer Funds Between Wallets Created Webhook](transfer-funds-between-wallets-created-webhook.html "Transfer Funds Between Wallets Created Webhook") . If the transferee fails to respond to the transfer request, the sender must cancel the transaction with [Set Transfer Response](set-transfer-response.html "Set Transfer Response") , with status set to **cancel**. ### Note **Limitation** - This feature is available for the following types of wallet: * person * company * client wallet of category **disburse** or **general** To activate this feature, contact [Client Support](https://support.rapyd.net) . This endpoint replaces the deprecated endpoint - `POST /v1/account/transfer` Rapyd will continue to support the deprecated endpoint until December 31, 2024. [###### Parameters](#idp377780_body) [###### Request Header Parameters](#idp377782_body) [###### Request Body Parameters](#idp377842_body) * * amount * Amount of the transfer. Decimal. * * currency * Three-letter ISO 4217 code for the currency used in the `amount` field. * * destination\_ewallet * ID of the wallet receiving the money. String starting with **ewallet\_**. * * expiration * Determines the day the transfer expires, in [Unix time](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_unix_time "Unix time") . Acceptance of the transfer must occur before the start of this day. 14 days after creation of the transfer * * source\_ewallet * ID of the wallet sending the money. String starting with **ewallet\_**. [###### Response Parameters](#idp377888_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var metadata = new { merchant\_defined = true }; var requestObj = new { amount = 50, currency = "USD", source\_ewallet = "ewallet\_56a273c10570528c608f2c6bcdc8ea41", destination\_ewallet = "ewallet\_43b888d4c038a219c52f45e754139f74", metadata, }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/ewallets/transfer", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { amount: 50, currency: 'USD', source\_ewallet: 'ewallet\_56a273c10570528c608f2c6bcdc8ea41', destination\_ewallet: 'ewallet\_43b888d4c038a219c52f45e754139f74', metadata: { merchant\_defined: true } }; const result = await makeRequest('POST', '/v1/ewallets/transfer', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ 'amount' => '5000',\ 'currency' => 'USD',\ 'source\_ewallet' => 'ewallet\_56a273c10570528c608f2c6bcdc8ea41',\ 'destination\_ewallet' => 'ewallet\_43b888d4c038a219c52f45e754139f74',\ 'metadata' => \[\ 'merchant\_defined' => true\ \],\ \]; try { $object = make\_request('post', '/v1/ewallets/transfer', $body); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request body = { "amount": 50, "currency": "USD", "source\_ewallet": 'ewallet\_56a273c10570528c608f2c6bcdc8ea41', "destination\_ewallet": 'ewallet\_43b888d4c038a219c52f45e754139f74', "metadata": { "merchant\_defined": True } } results = make\_request(method='post', path='/v1/ewallets/transfer', body=body) pprint(results) * /v1/ewallets/transfer * Transfer Funds Between Wallets * curl -X post https://sandboxapi.rapyd.net/v1/ewallets/transfer -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "source\_ewallet": "ewallet\_e67c8ad63200d781470a04107fbd7c59", "amount": 5, "currency": "USD", "destination\_ewallet": "ewallet\_e9e973e1c8b9cd030ce573157702ff78" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "0790e2e3-353d-42f8-9deb-f5cdff86f61c" }, "data": { "id": "d2e90d89-60b6-456f-a6a7-5dccf7febf5e", "status": "PEN", "amount": 5, "currency\_code": "USD", "destination\_phone\_number": null, "destination\_ewallet\_id": "ewallet\_e9e973e1c8b9cd030ce573157702ff78", "destination\_transaction\_id": "", "source\_ewallet\_id": "ewallet\_e67c8ad63200d781470a04107fbd7c59", "source\_transaction\_id": "wt\_ad5149f340d7147f772dd763bc9af7af", "transfer\_response\_at": 0, "created\_at": 1704631595, "metadata": { "merchant\_defined": true }, "response\_metadata": {}, "expiration": 0 } } * Transfer Funds Between Wallets with Expiration * curl -X post https://sandboxapi.rapyd.net/v1/ewallets/transfer -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "source\_ewallet": "ewallet\_613fd9c6593f44ffac0f1532c4eb9e18", "expiration": 1678103732, "amount": 10, "currency": "eur", "destination\_ewallet": "ewallet\_8f67fd4defacca9e5401f3829a68228a", "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "a2fcb896-112e-4008-a8ac-b4869bbc403a" }, "data": { "id": "d1e8d8a4-b905-11ed-875e-0255f3382f2f", "status": "PEN", "amount": 10, "currency\_code": "EUR", "destination\_phone\_number": null, "destination\_ewallet\_id": "ewallet\_8f67fd4defacca9e5401f3829a68228a", "destination\_transaction\_id": "", "source\_ewallet\_id": "ewallet\_613fd9c6593f44ffac0f1532c4eb9e18", "source\_transaction\_id": "wt\_d3133e9bc96c23b9c139a3281f3b7592", "transfer\_response\_at": 0, "created\_at": 1677767016, "metadata": { "merchant\_defined": true }, "response\_metadata": {}, "expiration": 1678103732 } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](wallet-transaction.html) * [Next](transfer-funds-between-wallets.html#idp377776) --- # List Virtual Accounts by Rapyd Wallet [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Wallet](rapyd-wallet-368670.html) * [Virtual Account](virtual-account.html) * List Virtual Accounts by Rapyd Wallet * [Prev](delete-virtual-account.html#idp386359) * [Next](list-virtual-accounts-by-rapyd-wallet-365103.html#idp386486) ##### List Virtual Accounts by Rapyd Wallet List the virtual accounts that are attached to a Rapyd Wallet. ### Note **Deprecated endpoint** that will continue to be supported until December 31, 2024. The updated endpoint is documented [here](list-virtual-accounts-by-rapyd-wallet.html "List Virtual Accounts by Rapyd Wallet") . [###### Parameters](#idp386490_body) [###### Request Query Parameters](#idp386492_body) * * ewallet * ID of the Rapyd Wallet that the virtual accounts were issued to. String starting with **ewallet\_**. [###### Request Header Parameters](#idp386502_body) [###### Response Parameters](#idp386552_body) * /v1/issuing/bankaccounts/list * List Virtual Accounts by Rapyd Wallet * curl -X get https://sandboxapi.rapyd.net/v1/issuing/bankaccounts/list?ewallet=ewallet\_9a9b2a863de733ca0be3f61043208bd5 -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "beefe1dc-aba5-4a90-a093-3db97644bdee" }, "data": { "ewallet": "ewallet\_9a9b2a863de733ca0be3f61043208bd5", "bank\_accounts": \[\ {\ "account\_id": "GBnullCLRB04154212111217",\ "account\_id\_type": "iban",\ "currency": "GBP",\ "country\_iso": "GB",\ "issuing\_id": "issuing\_aa62cfe8c7bb1444ae97288901dfdb44",\ "status": "ACT",\ "requested\_currency": null\ },\ {\ "account\_id": "GBnullCLRB04151212111217",\ "account\_id\_type": "iban",\ "currency": "GBP",\ "country\_iso": "GB",\ "issuing\_id": "issuing\_05193e13376b72232cf932bd9aafcfad",\ "status": "ACT",\ "requested\_currency": null\ }\ \] } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](delete-virtual-account.html#idp386359) * [Next](list-virtual-accounts-by-rapyd-wallet-365103.html#idp386486) --- # Webhooks [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Developer Resources](developer-resources.html) * Webhooks * [Prev](hosted-page-errors.html) * [Next](webhook-format.html) #### Webhooks Callback messages from Rapyd to the client, triggered by internal or external events. A webhook contains all relevant information about the event that triggers it. To receive webhooks, you must configure your account with the URL you want the webhooks to go to. See [Defining a Webhook Endpoint](defining-a-webhook-endpoint.html "Defining a Webhook Endpoint") . Use the `type` field in the webhooks to filter them or route them for further processing. Synchronous and Asynchronous Trigger Events A **synchronous trigger event** occurs at the same time as the HTTP request and response. The synchronous webhook contains exactly the same information as the response. You can use synchronous webhooks to confirm the content of the response. An **asynchronous trigger event** occurs outside the request-response cycle. For example, payment by cash requires the end-user customer to physically transfer cash into the Rapyd system at a point-of-sale ([POS](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pos "Point of Sale") ) location. The payment is created in the system and the response is sent, but the payment is not complete until the cash is received and registered. That trigger event causes Rapyd to send a webhook with the appropriate notification. ### Note In this reference document, individual asynchronous webhooks appear together with the features they relate to. Synchronous webhooks are not documented because they contain the same information as the responses. Uses of Webhooks The merchant can use the webhook notifications for any purpose, including the following: * Finalizing a transaction. * An audit trail. * A secondary method for tracking or synchronizing transactions. * Fraud detection and prevention. List of Webhooks For a complete list of the webhooks in the platform, use the Client Portal. In this section: A retail location where a business or consumer can initiate a transaction in exchange for goods or services. Search results -------------- No results found * [Prev](hosted-page-errors.html) * [Next](webhook-format.html) --- # Localization Methods [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Resource Methods](resource-methods.html) * Localization Methods * [Prev](retrieve-webhook.html#idp418885) * [Next](list-supported-languages.html) #### Localization Methods Resource methods for countries, currencies, languages and FX rates. * For a list of languages supported for hosted pages, see [List Supported Languages](list-supported-languages.html "List Supported Languages") . * For a list of all countries with their ISO codes, see [List Countries](list-countries.html "List Countries") . * For a list of all currencies with their ISO codes, see [List Currencies](list-currencies.html "List Currencies") . * For the FX rate for two currencies, see [Get FX Rate](get-fx-rate.html "Get FX Rate") . In this section: Search results -------------- No results found * [Prev](retrieve-webhook.html#idp418885) * [Next](list-supported-languages.html) --- # Issue Virtual Account to Wallet [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Wallet](rapyd-wallet-368670.html) * [Virtual Account](virtual-account.html) * Issue Virtual Account to Wallet * [Prev](virtual-account.html) * [Next](issue-virtual-account-to-wallet.html#idp383722) ##### Issue Virtual Account to Wallet Issue a virtual account to an existing wallet. Any bank can transfer money to a wallet using a virtual account number.  A virtual account is for one or more currencies.  There is no limit to the number of virtual accounts you can issue to a wallet. You can issue multiple virtual accounts in a single currency.  When funds are transferred to a virtual account, the funds appear in the wallet’s currency account for the currency of the transfer. You can convert transferred funds to certain currencies. This method triggers [Virtual Account Status Webhook](virtual-account-status-webhook.html "Virtual Account Status Webhook") . This webhook is sent whenever the virtual account status changes. ### Note This endpoint replaces the deprecated endpoint - `POST /v1/issuing/bankaccounts` Rapyd will continue to support the deprecated endpoint until December 31, 2024. **Prerequisites** * You must create a wallet. See [Create Wallet](create-wallet.html "Create Wallet") . * The identity of the wallet owner must be verified. See [Rapyd Verify](rapyd-verify-386565.html "Rapyd Verify") . [###### Parameters](#idp383726_body) [###### Request Header Parameters](#idp383728_body) [###### Request Body Parameters](#idp383788_body) [###### Response Parameters](#idp383866_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var metadata = new { merchant\_defined = true }; var requestObj = new { country = "DE", currency = "EUR", description = "Issue virtual account number to wallet", ewallet = "ewallet\_cfb416d9108161347d98acf17f3fd3e8", merchant\_reference\_id = "abcd\_09870987", metadata }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/virtual\_accounts", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('../../../../Utilities/JS/utilities').makeRequest; async function main() { try { const body = { currency: 'EUR', country: 'DE', description: 'Issue virtual account number to wallet', ewallet: 'ewallet\_cfb416d9108161347d98acf17f3fd3e8', merchant\_reference\_id: 'abcd\_09870987', metadata: { merchant\_defined: 'true', } }; const result = await makeRequest('POST', '/v1/virtual\_accounts', body); console.log(result); } catch (error) { console.error('Error completing request', error); }c * * PHP * "EUR",\ "country" => "DE",\ "description" => "Issue virtual account number to wallet",\ "ewallet" => "ewallet\_cfb416d9108161347d98acf17f3fd3e8",\ "merchant\_reference\_id" => "abcd\_09870987",\ "metadata" => array(\ "merchant\_defined" => true\ )\ \]; try { $object = make\_request('post', '/v1/virtual\_accounts', $body); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request body = { "currency": "EUR", "country": "DE", "description": "Issue virtual account number to wallet", "ewallet": "ewallet\_cfb416d9108161347d98acf17f3fd3e8", "merchant\_reference\_id": "abcd\_09870987", "metadata": { "merchant\_defined": True } } results = make\_request(method='post', path=f'/v1/virtual\_accounts', body=body) pprint(results)rom pprint import pprint from utilities import make\_request invoice\_item = { "currency": "USD", "customer": "cus\_b3b8ad0174f4c415c663b35bcf542192", "metadata": { "merchant\_defined": True }, "amount": 10 } result = make\_request(method='post', path='/v1/invoice\_items', body=invoice\_item) pprint(result) * /v1/virtual\_accounts * Issue Virtual Account Number to Wallet * curl -X post https://sandboxapi.rapyd.net/v1/virtual\_accounts -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "currency": "EUR", "country": "DE", "description": "Issue virtual account number to wallet", "ewallet": "ewallet\_eb221f9155cf0895c8a4e8b1ad6b844d", "merchant\_reference\_id": "5rtfgk897ter0df0m", "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "e213cb38-8a8f-4ae7-b124-2da91e6baaeb" }, "data": { "id": "issuing\_293e65543872d2a87057b48dd657dd06", "merchant\_reference\_id": "5rtfgk897ter0df0m", "ewallet": "ewallet\_eb221f9155cf0895c8a4e8b1ad6b844d", "bank\_account": { "beneficiary\_name": "CashDash UK Limited", "address": "Northwest House, 119 Marylebone Road NW1 5PU", "country\_iso": "DE", "iban": "DE07202208000092780641", "bic": "SXPYDEHH" }, "metadata": { "merchant\_defined": true }, "status": "ACT", "description": "Issue test bank account", "funding\_instructions": null, "currency": "EUR", "requested\_currency": null, "transactions": \[\] } } * Issue Virtual Account Number - Requested Currency * curl -X post https://sandboxapi.rapyd.net/v1/virtual\_accounts -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "currency": "USD", "country": "US", "description": "test US", "ewallet": "ewallet\_7b202163832a9da0489960d670497426" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "59079ed3-3fe7-4e52-8eb4-a3e49a3cd961" }, "data": { "id": "issuing\_ab9cc86fc203f74bdc76c002b19b0cd4", "merchant\_reference\_id": "5rtfgk8970dfbmT", "ewallet": "ewallet\_7b202163832a9da0489960d670497426", "bank\_account": { "beneficiary\_name": "Rapyd Financial Technology US Inc", "address": "701 Villa Ave, Mountain View, CA 94041", "country\_iso": "US", "country": "United States", "aba\_routing\_number": "051504597", "account\_number": "5002001485351098" }, "metadata": { "merchant\_defined": true }, "status": "ACT", "description": "Issue virtual account number to wallet", "funding\_instructions": null, "currency": "USD", "requested\_currency": null, "transactions": \[\] } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. An alphanumeric identifier for financial institutions, also known informally as a [SWIFT](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_swift) code or SWIFT/BIC code. A number for a bank account that is used for international transfers. Search results -------------- No results found * [Prev](virtual-account.html) * [Next](issue-virtual-account-to-wallet.html#idp383722) --- # Set Transfer Response [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Wallet](rapyd-wallet-368670.html) * [Wallet Transaction](wallet-transaction.html) * Set Transfer Response * [Prev](transfer-funds-between-wallets.html#idp377776) * [Next](set-transfer-response.html#idp378096) ##### Set Transfer Response Respond to a transfer of funds between wallets. The transferee uses this method to accept or decline the transfer. The sender can use this method to cancel the transfer, unless Rapyd Protect is reviewing the transfer. This method triggers [Transfer Funds Between Wallets Response Webhook](transfer-funds-between-wallets-response-webhook.html "Transfer Funds Between Wallets Response Webhook") . ### Note This method can be used only one time per transfer transaction, and must be used before the expiration date set in the request to create the transfer. This endpoint replaces the deprecated endpoint - `POST /v1/account/transfer/response` Rapyd continues to support the deprecated endpoint. No sunset date has been set. [###### Parameters](#idp378100_body) [###### Request Header Parameters](#idp378102_body) [###### Request Body Parameters](#idp378162_body) * * id * ID of the transfer transaction, from the `id` field in the `data` object of the response. UUID. * * status * Determines how to handle the transfer. One of the following values: * **accept** * **decline** * **cancel** ### Note You cannot cancel a transfer that is being reviewed. [###### Response Parameters](#idp378199_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var metadata = new { merchant\_defined = "accepted" }; var requestObj = new { id = "5ecd1c11-6f42-11ea-833c-02e199f7f6f5", metadata, status = "accept", }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/ewallets/transfer/response", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { id: '590d4d32-b07d-11ea-833c-02e199f7f6f5', metadata: { merchant\_defined: "accepted" }, status: 'accept' }; const result = await makeRequest('POST', '/v1/ewallets/transfer/response', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ 'id' => 'b8fe12a9-b09d-11ea-833c-02e199f7f6f5',\ 'metadata' => \[\ 'merchant\_defined' => 'accepted'\ \],\ 'status' => 'accept'\ \]; try { $object = make\_request('post', '/v1/ewallets/transfer/response', $body); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request body = { "id": '86dfc58c-b0a4-11ea-833c-02e199f7f6f5', "metadata": { "merchant\_defined": "accepted" }, "status": "accept" } results = make\_request(method='post', path='/v1/ewallets/transfer/response', body=body) pprint(results) * /v1/ewallets/transfer/response * Accept * curl -X post https://sandboxapi.rapyd.net/v1/ewallets/transfer/response -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "id": "d1e8d8a4-b905-11ed-875e-0255f3382f2f", "metadata": { "merchant\_defined": "accepted" }, "status": "accept" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "38d69aab-b63e-4b7f-afbd-46b0368d30b3" }, "data": { "id": "d1e8d8a4-b905-11ed-875e-0255f3382f2f", "status": "CLO", "amount": 10, "currency\_code": "EUR", "destination\_phone\_number": null, "destination\_ewallet\_id": "ewallet\_8f67fd4defacca9e5401f3829a68228a", "destination\_transaction\_id": "wt\_acb4ba1785b7c96ccfd7c44ba8e4a9cd", "source\_ewallet\_id": "ewallet\_613fd9c6593f44ffac0f1532c4eb9e18", "source\_transaction\_id": "wt\_d3133e9bc96c23b9c139a3281f3b7592", "transfer\_response\_at": 1677767933, "created\_at": 1677767016, "metadata": { "merchant\_defined": true }, "response\_metadata": { "merchant\_defined": "accepted" }, "expiration": 1678103732 } } * Decline * curl -X post https://sandboxapi.rapyd.net/v1/ewallets/transfer/response -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "id": "3368612a-b908-11ed-875e-0255f3382f2f", "metadata": { "merchant\_defined": "declined" }, "status": "decline" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "305b32eb-b546-4d15-bd7a-475ec89ab20a" }, "data": { "id": "3368612a-b908-11ed-875e-0255f3382f2f", "status": "DEC", "amount": 10, "currency\_code": "EUR", "destination\_phone\_number": null, "destination\_ewallet\_id": "ewallet\_8f67fd4defacca9e5401f3829a68228a", "destination\_transaction\_id": "", "source\_ewallet\_id": "ewallet\_613fd9c6593f44ffac0f1532c4eb9e18", "source\_transaction\_id": "wt\_994ef31786ae3e3f7eec348c5433b14a", "transfer\_response\_at": 1677768077, "created\_at": 1677768039, "metadata": { "merchant\_defined": true }, "response\_metadata": { "merchant\_defined": "declined" }, "expiration": 1678103732 } } * Cancel by sender * curl -X post https://sandboxapi.rapyd.net/v1/ewallets/transfer/response -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "id": "811d3621-b908-11ed-875e-0255f3382f2f", "metadata": { "merchant\_defined": "canceled" }, "status": "cancel" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "68fdb540-2810-4377-b6ad-0f6bbd82fa71" }, "data": { "id": "811d3621-b908-11ed-875e-0255f3382f2f", "status": "CAN", "amount": 10, "currency\_code": "EUR", "destination\_phone\_number": null, "destination\_ewallet\_id": "ewallet\_8f67fd4defacca9e5401f3829a68228a", "destination\_transaction\_id": "", "source\_ewallet\_id": "ewallet\_613fd9c6593f44ffac0f1532c4eb9e18", "source\_transaction\_id": "wt\_c986b13f010ebf27867945cb30e68301", "transfer\_response\_at": 1677768191, "created\_at": 1677768169, "metadata": { "merchant\_defined": true }, "response\_metadata": { "merchant\_defined": "canceled" }, "expiration": 1678103732 } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](transfer-funds-between-wallets.html#idp377776) * [Next](set-transfer-response.html#idp378096) --- # Hosted Checkout Page Integration [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Collect](rapyd-collect.html) * [Rapyd Checkout Overview](rapyd-checkout-overview.html) * Hosted Checkout Page Integration * [Prev](rapyd-checkout-overview.html#idp216756) * [Next](hosted-checkout-page-integration.html#idp216771) ##### Hosted Checkout Page Integration Follow these steps and quickly add Rapyd Hosted Checkout to your website. [###### Step 1: Create Your Checkout Experience](#idp216771_body) Log into the Rapyd Client Portal and start building your own checkout experience. Add your own colors, logo, and select all the payment methods that you would like to accept. ###### Customize Your Checkout Page Checkout enables you to customize the look and feel to match your brand and website experience. 1. Once you create a Rapyd account, sign in to the Client Portal as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Settings** > **Branding**. ![hosted-checkout-page-integration-flow-1.png](image/16763ca2fdd378.png) ### Select Your Hosted Page to View The Preview bar, located above the preview window, will display a preview of your Hosted Checkout page branding. You can toggle between the Hosted Checkout, Save Card Details Page, and Beneficiary Account Details page. Branding settings affect all Hosted pages including Rapyd Collect, Disburse, and Issuing. 2. On the **Brand elements** pane on the left side of the page, tap the **Upload logo** icon and upload an image file (png, jpg, jpeg, gif) containing your company logo. 3. Tap the **Brand color** field to select the color of the buttons on the display. ![hosted-checkout-page-integration-flow-2.png](image/16763ca2fe5b76.png) 4. In the Fallback URL field, enter the URL of the page that appears when the process is completed or canceled when `complete_checkout_url` or `cancel_checkout_url` is not specified. ![hosted-checkout-page-integration-flow-3.png](image/16763ca2fef585.png) ### Complete and Cancel URLs Other Hosted pages may have different fields such as `complete_url` and `cancel_url` * Beneficiary Tokenization Page * Rapyd Verify Hosted Page * Hosted IDV Page * Hosted Page Card Token Object 5. Remove any Payment Methods you will not accept (Hosted Checkout only). * Bank - Includes Bank Redirect and Bank Transfer * Card * Cash * eWallet ![hosted-checkout-page-integration-flow-4.png](image/16763ca3007c5b.png) 6. Choose your button text from the drop down (Hosted Checkout only). ![hosted-checkout-page-integration-flow-5.png](image/16763ca30127cf.png) 7. **Customer Support Details** - You can add your customer support contact information (optional) to be displayed on your hosted pages. ![hosted-checkout-page-integration-flow-6.png](image/16763ca301cf64.png) 8. Tap the **Save changes** button at the bottom right corner of the screen. ![hosted-checkout-page-integration-flow-7.png](image/16763ca30272fc.png) ###### Preview Your Hosted Page On the Branding page, switch between the mobile icon or desktop icon to view the preview of your hosted page. ![hosted-checkout-page-integration-flow-8.png](image/16763ca3031678.png) [###### Step 2: Generate Your Checkout Page](#idp216857_body) To generate your Rapyd Checkout page, use the [Create Checkout Page](create-checkout-page.html "Create Checkout Page") method. 1. Before you send your first API request to the Rapyd platform, you need to set up your [Authentication Headers](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_authentication_header "Authentication header") including your [Request Signatures](request-signatures.html "Request Signatures") , and then send a HTTPS POST Request to Rapyd, which will generate the Rapyd Checkout page. **Note**: See [Make Your First API Call](make-your-first-api-call.html "Make Your First API Call") to set this up if you haven’t yet done so. 2. Once your Headers and Signature setup is complete, request the Checkout Body. The following three required parameters are required for creating a checkout page: * Amount * Country * Currency The example below shows a list of required and optional parameters used in the body of a Create Checkout Page request. The request should contain at least the three required parameters mentioned above: Description of Parameters | | | | --- | --- | | Parameter | Description | | amount (required) | The amount of the payment, in units of the currency defined in **currency**. Decimal. | | country (required) | The two-letter ISO 3166-1 ALPHA-2 code for the country. Uppercase. | | currency (required) | Three-letter ISO 4217 code for the currency used in the `amount` field. Uppercase. | | complete\_checkout\_url | URL where the customer is redirected when checkout is successful. This page can be set dynamically for each generated checkout page as it overrides the fallback URL that was set in the Client Portal. | | cancel\_checkout\_url | URL where the customer is redirected after pressing Back to Website to exit the hosted page. This URL overrides the merchant\_website URL.

Does not support localhost URLs. | | payment\_method\_types\_include | List of payment methods that are displayed on the checkout page. | | merchant\_reference\_id | Identifier for the transaction. Defined by the merchant. Can be used for reconciliation. | | requested\_currency | Determines the currency that the customer will use to pay, when it is different from the currency that the merchant wants to receive. Three-letter ISO 4217 code. When this field is set, the checkout page displays the following information:

* Original amount and currency.

* The converted amount in the requested currency.

* The exchange rate. | | amount\_off | The amount of currency to subtract from the payment. Decimal. A parameter in the `cart_items` object. This parameter cannot be passed with the `percent_off` parameter. | | percent\_off | A discount measured in percent. A parameter in the `cart_items` object. This parameter cannot be passed with the `amount_off` parameter. | | required\_customer\_fields (optional) | An array of fields in the `custom_elements` object. Provide the following values for the fields:

* **name** - The customer's full name

* **email** - The customer's email address

* **phone\_number** - The customer's phone number

* **address** - The address associated with the customer | ### Third Party Payment Flow When the `payment_flow_type` of the payment method/s that you provide to your customers is a third party redirect, make sure to provide URLs in the `complete_payment_url` and `error_payment_url` parameters. The customer will be redirected to these URLs after completing a payment. To determine the `payment_flow_type`, see [List Payment Methods by Country](list-payment-methods-by-country.html "List Payment Methods by Country") . ###### Example of a Request Body * * JSON * // Request URL: POST https://sandboxapi.rapyd.net/v1/checkout // Message body: { "amount": 100, "country": "SG", "currency": "SGD", "requested\_currency": "USD", "complete\_checkout\_url": "https://example.com/complete", "cancel\_checkout\_url":"https://example.com/cancel" "merchant\_reference\_id": "950ae8c6-76", "payment\_method\_types\_include": \[\ "sg\_credit\_mastercard\_card",\ "sg\_credit\_visa\_card" \ \] } * * .Net * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string\[\] payment\_method\_types\_include = new string\[\] { "sg\_credit\_mastercard\_card", "sg\_credit\_visa\_card" }; var requestObj = new { amount = 100, complete\_checkout\_url = "http://example.com/complete", country = "SG", currency = "SGD", requested\_currency = “USD”, merchant\_reference\_id = "950ae8c6-76", payment\_method\_types\_include }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/checkout", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { amount: 100, complete\_checkout\_url: 'http://example.com/complete', country: ‘SG’, currency: 'SGD', requested\_currency: ‘USD’, merchant\_reference\_id: '950ae8c6-76', payment\_method\_types\_include: \[‘sg\_credit\_mastercard\_card’, ‘sg\_credit\_visa\_card’\] }; const result = await makeRequest('POST', '/v1/checkout', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ "amount" => 100,\ "complete\_checkout\_url" => "http://example.com/complete",\ "country" => "SG",\ "currency" => "SGD",\ “requested\_currency” => “USD”,\ "merchant\_reference\_id" => "950ae8c6-76",\ "payment\_method\_types\_include" => \[\ "sg\_credit\_mastercard\_card", \ "sg\_credit\_visa\_card"\ \]\ \]; try { $object = make\_request('post', '/v1/checkout', $body); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request checkout\_page = { "amount": 100, "complete\_checkout\_url": "http://example.com/complete", "country": "SG", "currency": "SGD", "merchant\_reference\_id": "950ae8c6-76", "payment\_method\_types\_include": \[\ "sg\_credit\_mastercard\_card", \ "sg\_credit\_visa\_card"\ \] } results = make\_request(method="post", path="/v1/checkout", body=checkout\_page) pprint(results) You can include the customer ID starting with **cus\_** and `save_card_default` to include a filled "save card" checkbox as described in [Create Checkout Page](create-checkout-page.html "Create Checkout Page") . ### Pre-Fill Checkout Fields You can pre-fill, or exempt select checkout fields by including them in the `merchant_fields` object in your API request. The fields will not appear on the hosted page. The sample list below shows the body of the response which contains the following fields as described in [Create Checkout Page](create-checkout-page.html "Create Checkout Page") : Description of Fields | | | | --- | --- | | Fields | Description | | id | ID of the Rapyd Checkout page. | | amount | The amount of the payment, in units of the currency defined in currency. | | country | The two-letter ISO 3166-1 ALPHA-2 code for the country. | | currency | Three-letter ISO 4217 code for the currency used in the amount field. | | customer | ID of the 'customer' object. String starting with **cus\_**. Relevant when the customer is already signed up and stored on the Rapyd platform. | | merchant\_website | URL of the merchant’s website, provided by the merchant. Relevant when `cancel_checkout_url` or `complete_checkout_url` are unset. Configured in the Client Portal when setting the Fallback URL field as described in [Customizing Your Hosted Page](customizing-your-hosted-page.html "Customizing Your Hosted Page")
. | | merchant\_logo | URL of the merchant’s logo, provided by the merchant. | | redirect\_url | URL of the redirect for the Rapyd Checkout page, provided by Rapyd. | The response also shows the entire payment object, which has been edited out, except for the `complete_payment_url` and the `error_payment_url`. ###### Example of a Response Body * * JSON * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "c343cac1-d682-4983-a386-345aa75d9aaf" }, "data": { "id": "checkout\_e6a30340c23be7201346eade2bfe3417", "country": "SG", "currency": "SGD", "amount": 100, "status": "NEW", "payment": { "id": "", "amount": 100, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", // ... "merchant\_reference\_id": "950ae8c6-76", // ... "merchant\_requested\_currency": "USD", // ... }, "payment\_method\_type": "", "payment\_method\_type\_categories": null, "payment\_method\_types\_include": \[\ "sg\_credit\_mastercard\_card",\ "sg\_credit\_visa\_card" \ \], // ... "payment\_method\_types\_exclude": null, "customer": "", "customer\_default\_payment\_method": {}, "country\_name": "Singapore", "merchant\_color": "5387e6", "merchant\_website": "https://www.rapyd.net/", "merchant\_logo": "https://sboxiconslib.rapyd.net/merchant-logos/ohpc\_04e7f6ae2362818fb6eb723b821824ad.jpg", "merchant\_customer\_support": {}, // ... "language": "en", "complete\_checkout\_url": "http://example.com/complete", "cancel\_checkout\_url": "", "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_e6a30340c23be7201346eade2bfe3417", "timestamp": 1592143929, "expiration": 1593353529 } } [###### Step 3: Redirect Your Customer](#idp217099_body) Redirect your customer to the URL you received in the response to Create Checkout Page. The redirect URL appears in the `redirect_url` field and includes all the parameters for the Checkout session. **Note**: The checkout page **expires 14 days** after creation by default. Alternatively, you may specify a `page_expiration` parameter in the [Create Checkout Page](create-checkout-page.html "Create Checkout Page") request and choose a different value for the expiration of the Checkout page, in [Unix time](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_unix_time "Unix time") . [###### Checkout Page Statuses](#idp217110_body) The finite state diagram below summarizes the statuses for the Hosted Checkout page. ![checkout.svg](image/16763ca303f41b.svg) Description of Statuses | Status | Description | | --- | --- | | NEW | The Hosted Checkout page was generated. | | INP | The customer entered the payment information. The payment is in progress. | | DON | The payment was completed. | | EXP | The checkout page expired. | | DEC | The payment was declined. | In this section: In the HTTP protocol, a parameter that provides the user's credentials to the server. The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](rapyd-checkout-overview.html#idp216756) * [Next](hosted-checkout-page-integration.html#idp216771) --- # Listing Disputes [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Disputes](disputes.html) * Listing Disputes * [Prev](disputes.html#idp263854) * [Next](listing-disputes.html#idp263865) #### Listing Disputes View a list of all disputed card payments. A card issuer or bank disputes a card payment initiated by the consumer, and funds are automatically deducted from your client account. You can accept the dispute, or challenge the dispute as described in Viewing Dispute Details. [##### How to View Disputes](#idp263865_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Collect** > **Review & Protect** > **Disputes**. The **Disputes** page appears. ![64808c87b354c.png](image/16763ca547d9c5.png) **Customize the Columns** * To add or remove columns, click the **Customize Columns** icon at the top right. The icon has three vertical bars. On the **Customize Columns** panel, select the columns you want to appear on screen and click **Apply**. * To change the column order on the panel, grab the left of the column title and drag it to a new position. * To sort the list, hover over a column header. If the cursor turns into a pointing finger, tap the header. An arrow indicates the sort direction. To change the direction, tap the header again. * To view more rows or columns, scroll down or to the right over the disputes table. **Filter the Fields and Export** * To filter the list, click the **Search** field at the top. Suggested filters appear. Select a filter and type a value, or type a free text string. Then click the magnifying glass icon. * To clear a filter, delete the text in the **Search** field and click the magnifying glass icon. * To apply an advanced filter, click the Filter icon at the top right. In the **Filter** window, select a field and a condition, and enter a value. To define an additional filter, click **\+ Add Filter** and fill in the field, condition, and value. Then click **Apply**. * To clear an advanced filter, close the filter description. * To clear all advanced filters, click **Clear All**. * Click the export icon to export the fields into a CSV file. [##### Description of Fields](#idp263914_body) The following table describes the fields in the **Payments** page. | | | | --- | --- | | Field | Description | | Amount | The total amount (original amount + fee). | | Category | The type of dispute. One of the following:

* Cardholder Dispute

* Fraud

* Authorization

* Processing Errors

* General | | Created At | Date and time the dispute was made. | | Reason description | Dispute reason description. | | Customer ID | ID of the `customer` object. String starting with **cus\_**. | | Customer's name | The name of the customer. | | Dispute ID | ID of the dispute starting with **dispute\_**. | | Due Date | Due date for dispute to be resolved. In [unix time](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_unix_time "Unix time")
. | | eWallet ID | ID of the ewallet tied to the dispute. String starting with **ewallet\_**. | | Original Amount | Original amount of the payment. | | Original Dispute Amount | Original amount of the dispute. | | Payment ID | The payment ID, a string starting with **payment\_**. | | Status | Indicates the status of the payment. One of the following:

* Active - a payment dispute has been sent by the card issuer.

* Lose - a payment dispute has been accepted, or a challenge has failed.

* Review - a dispute has been challenged and/or is pending review.

* Win - a dispute has been successfully challenged. | | Updated At | Date and time of the most recent update. | | Merchant Reference ID | Identifier for the transaction. Defined by the merchant. | | Card's last 4 digits | The last 4 digits of the card number. | [###### Dispute Message Sequences](#idp264034_body) The message sequence diagrams below describe how information is exchanged between Rapyd, the merchant, the merchant's customers, and the card issuer. Dispute - Challenge Won ![dispute-challenged-by-client---win.svg](image/16763ca548839e.svg) Dispute - Challenge Lost ![dispute-challenged-by-client---lose.svg](image/16763ca54908c1.svg) Dispute - Accepted ![dispute-accepted-by-client.svg](image/16763ca54987ee.svg) [###### Dispute Statuses](#idp264049_body) The finite state diagram below summarizes the statuses for disputes. ![dispute.svg](image/16763ca54a1aa6.svg) Description of Statuses | Status | Description | | --- | --- | | ACT | Active - a payment dispute has been sent by the card issuer. | | RVW | Review - a dispute has been challenged and/or is pending review. | | WIN | Win - a dispute has been successfully challenged. | | LOS | Lose - a payment dispute has been accepted, or a challenge has failed. | ###### Categories | | | | | --- | --- | --- | | Category | Rapyd Dispute Reason | Possible Reason for Dispute | | Cardholder Dispute | Cardholder Dispute | Generic cardholder dispute (MC). | | Cardholder Dispute | Credit not processed | The customer claims that the purchased product was returned or the transaction was otherwise canceled, but you have not yet provided a refund or credit. | | Cardholder Dispute | Goods or Services Not Provided | The customer claims they did not receive the products or services purchased. | | Cardholder Dispute | Product unacceptable | The product or service was received but was defective, damaged, or not as described. | | Cardholder Dispute | Subscription canceled | The customer claims that you continued to charge them after a subscription was canceled. | | Cardholder Dispute | Counterfeit Merchandise | The merchandise was identified as counterfeit by the owner of the intellectual property, a government agency, or a neutral third-party expert. | | Fraud | Fraud | The cardholder claims that they didn’t authorize the payment. This can happen if the card was lost or stolen and used to make a fraudulent purchase. It can also happen if the cardholder doesn’t recognize the payment as it appears on the billing statement from their card issuer.

**Note**: This is the most common type of dispute. | | Processing Errors | Processing Errors | * The cardholder paid twice for the same transaction using two different forms of payment

* The cardholder’s account has been debited more than once for the same transaction using the same form of payment

* The cardholder was billed an incorrect amount Cash was not properly dispensed by an ATM

* The cardholder’s account has been debited more than once for the same ATM transaction

* The cardholder was billed for loss, theft, or damage in the same transaction as the underlying initial service

* A dispute regarding POI Currency Conversion (Dynamic Currency Conversion)

* The cardholder was billed an unreasonable amount (Intra-EEA Transactions, domestic transactions in EEA countries, transactions between an EEA country and Gibraltar or the UK, Gibraltar domestic transactions, and UK domestic transactions).

* The cardholder paid an improper merchant surcharge (intra-European and inter-European transactions only)

* The merchant processed a credit (instead of a reversal) to correct an error which resulted in the cardholder experiencing a currency exchange loss. | | Authorization | Authorization | * Authorization was required but not obtained.

* The primary account number (PAN) does not exist.

* The authorization chargeback protection time period had expired for the presentment (meaning seven calendar days for final or undefined authorizations and 30 days for pre-authorizations) and one of the following:

* For a transaction occurring at a merchant located in the Europe Region, the account was permanently closed before the chargeback was processed

* For a transaction occurring at a merchant located in any other region, the issuer deemed the account not to be in good standing (a “statused” account) before filing the chargeback

* A card-not-present authorization was declined by the issuer and subsequently approved through Stand-In processing or X-Code with an approval response as specified in the Authorization Manual with the following exceptions:

* The issuer generated a decline response that included a value of 02 (Cannot approve at this time, try again later) in DE 48 (Additional Data—Private Use), subelement 84 (Merchant Advice Code).

* The issuer generated an approval response after previously declining the transaction.

* The merchant can prove that the cardholder initiated the authorization request. | | General | General | This is an uncategorized dispute, so you should contact the customer for additional details to find out why the payment was disputed. | In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](disputes.html#idp263854) * [Next](listing-disputes.html#idp263865) --- # Checkout Toolkit Integration [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Collect](rapyd-collect.html) * [Rapyd Checkout Overview](rapyd-checkout-overview.html) * Checkout Toolkit Integration * [Prev](hosted-checkout-page-integration.html#idp217110) * [Next](checkout-toolkit-integration.html#idp217156) ##### Checkout Toolkit Integration A checkout solution without the PCI-DSS compliance worry. [###### Create Your Own Customized Page](#idp217156_body) Checkout Toolkit has been specially designed to embed directly into your shopping cart payment fields to give your business more control over the entire checkout experience. ### Tutorial: How to Build a Hosted Checkout Page and Embed a Checkout Toolkit Looking for a quick start? This [tutorial](https://community.rapyd.net/t/how-to-build-a-hosted-checkout-page-and-embed-a-checkout-toolkit/1699) will walk you through the steps of building a hosted checkout page with Rapyd Checkout and then embedding it in your website using Rapyd’s Checkout Toolkit. ###### How to Integrate Checkout Toolkit [Companion Code Sample for Video: Checkout Toolkit Demo](https://github.com/Rapyd-Samples/checkout-toolkit-demo) ###### Supported End-User Devices The following end-user devices are supported: | | | | --- | --- | | Device | Description | | Mobile Phone Browsers | Width is responsive and is supported from 320px onwards. For optimal readability, define the screen width. The height size is dynamic and changes according to the content.

**Note: Do not set a limit on the height.** | | Desktop Browsers | Supports a width of 500px and above. The height size is dynamic and can change according to the content.

**Note: Do not set a limit on the height.** | [###### Steps for Creating Your Checkout Page](#idp217197_body) Before embedding the iframe into your page, refer to [Hosted Checkout Page Integration](hosted-checkout-page-integration.html "Hosted Checkout Page Integration") and follow steps 1 and 2 to create your Checkout Page. Once you create the Checkout page, in the response to the Create Checkout Page, you’ll receive the ID of the checkout page object, a string starting with `checkout_`, (for example: id: "checkout\_9ebe58dcb9d75e8f972a35350f96c2fa"). ### Filtered for just one payment method type category You need to specify **one** payment method type category in the Create Checkout request, or alternatively, **one** payment method type or **one** list of payment method types of the same category. Add the following code to your checkout page: 1. Add a ### Note To run this method in the [sandbox](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_sandbox "Sandbox") , use the following code: 2. Add a
tag with id="rapyd-checkout":
3. Initialize the Checkout Page object with the following fields: * * JavaScript * Instantiating ‘checkout’ with parametersInstantiating 'checkout' & setting variables let checkout = new RapydCheckoutToolkit({ pay\_button\_text: "Click to pay", // Text that appears on the 'Pay' button. // String. Maximum length is 16 characters. // Default is "Place Your Order". Optional. pay\_button\_color: "blue", // Color of the 'Pay' button. String. // Standard CSS color name or hexadecimal code such as #323fff. // Default is the color that is returned in the 'merchant\_color' // field of the response to 'Create Checkout Page'. Optional. id: "checkout\_9ebe58dcb9d75e8f972a35350f96c2fa", // ID of the 'Create Checkout Page' response. String. Required. wait\_on\_payment\_confirmation: false, // Default is 'false'. Optional. // You can keep the Toolkit open in a pending state. // The iframe will close when the payment session has been completed. // The timeout is set to 10 minutes. wait\_on\_payment\_redirect: false, // Default is 'false'. Optional. // The iframe will close when the payment session has been completed. // The user will redirect to complete the 3DS Verification. hide\_submit\_button: false, // Default is 'false'. Optional. // The submit button will not be visible if set to 'true'. (See CHECKOUT\_SUBMIT\_PAYMENT event). // This is relevant only for the Checkout Toolkit (not other toolkit solutions). close\_on\_complete: true, // Causes the embedded Rapyd Checkout Toolkit window to close // When the payment is complete. Boolean. Default is 'true'. Optional. page\_type: “collection” // Default is "collection". Optional. }); 4. Call display Checkout() to display the checkout page. checkout.displayCheckout(); 5. Optional step. If `close_on_complete` is set to false, call `checkout.closeCheckout()` to close the Rapyd Checkout Toolkit window. checkout.closeCheckout(); 6. Optional Step. You can pass the `hide_submit_payment` field as 'true' in order to hide the submit payment button created by the Rapyd Checkout Toolkit. Then, by triggering the `CHECKOUT_SUBMIT_PAYMENT` event, you can manage the submit button. Relevant only for Checkout Toolkit. * * JavaScript * const iframeElement = document.getElementById('rapyd-checkout-frame'); iframeElement.contentWindow.postMessage({type: "CHECKOUT\_SUBMIT\_PAYMENT"}, '\*'); 7. Insert your code that runs when the following events occur. Use your code to read the event field in the **window** object. * * JavaScript * window.addEventListener('onCheckoutPaymentSuccess', (event) => { console.log(event.detail) // Returns 'Payment' object. // Client code. }) window.addEventListener('onCheckoutPaymentFailure', (event) => { console.error(event.detail.error) // Returns an error message from the API. // Client code. }) window.addEventListener('onLoading', (event) => { console.log(event.detail.loading) // returns true or false depending on the loading state // client code }) window.addEventListener('onCheckoutPaymentPending', (event) => { console.log(event.detail) // Returns 'Payment' object. // Client code. }) window.addEventListener('onCheckoutPaymentExpired', (event) => { console.error(event.detail.error) // Returns a constant error message // The event is triggered when the payment status is 'EXP'. // "CHECKOUT\_PAYMENT\_EXPIRED" }) window.addEventListener('onCheckoutUpdateCardSuccess', (event) => { console.log(event.detail) // Returns payment method object. // client code }) window.addEventListener('onCheckoutDeleteCardSuccess', (event) => { console.log(event.detail) // Returns deleted payment method object. // client code [###### Sample Embedded Rapyd Checkout Toolkit](#idp217262_body) Here's an example of a Rapyd Checkout page created using the Toolkit: * * HTML * HTML Rapyd Checkout Toolkit

Rapyd Checkout Toolkit Demo

On successful payment, the clients receive a `onCheckoutPaymentSuccess` event with the payment object. Note the following fields and the tasks associated with each of them. Payment Object Fields | | | | | --- | --- | --- | | Field | Description | Action | | status | Indicates the status of the payment (Read-only).

Responses - (One of the following):

* **ACT** - Active and awaiting payment. Can be updated.

* **CAN** - Canceled by the merchant or the customer's bank.

* **CLO** - Closed and paid.

* **ERR** - Error. An attempt was made to complete the payment, but failed.

* **EXP** - The payment has expired. | You can use this field to check the payment status, whether it is active, awaiting completion, or closed and paid. | | redirect\_url | Third party URL where the customer is supposed to complete the payment, for example: card payments with 3DS authentication, bank redirect payments, redirect to eWallets. | * When the payment status is **ACT** and a URL is returned in the redirect\_url field, make sure to redirect the customer to this URL.

* When this payment is completed, the customer is redirected to the URL that you provided in complete\_payment\_url or error\_payment\_url. | | instructions | Describes the required steps that the customer should take for completing the payment. (Read-only). | When the payment status is **ACT** and instructions are provided, you can display them to the customer. | | textual\_codes | A text code or a set of text codes for the customer to use to complete the steps described in the instructions field. (Read-only). | When the payment status is **ACT** and textual\_codes are provided, display them along with the key and value to the customer. | | visual\_codes | An image or a set of images for the customer to use to complete the steps described in the instructions field, for example, a QR code or barcode. (Read-only). | When the payment status is **ACT** and visual\_codes are provided, display them along with the key and value to the customer.

1. If the value is a URL, display the URL as an image.

2. If the value is base 64, display the image. | **Recommendation**: Be sure to implement navigation elements (e.g. back, return, or cancel) on your website when embedding the Toolkit Integration solution. [###### Checkout Toolkit Customizations](#idp217357_body) You can use the toolkit to tailor your Checkout page according to your preference. ###### Translations You have the option of changing the default language of your payment page to any of the currently available languages in the list below: | | | | | --- | --- | --- | | Simplified Chinese | Traditional Chinese | English | | Estonian | German | Greek | | Hindi | Icelandic | Indonesian | | Italian | Japanese | Korean | | Bahasa Malayu (Malaysian) | Lithuanian | Russian | | Portuguese | Slovak | Slovenian | | Spanish | Thai | Turkish | | Tagalog | Ukrainian | Vietnamese | | Danish | Hebrew | | Specify it in the language parameter field when generating the Checkout page. **Note**: See the full list of languages at [Hosted Page Language Support](localization-methods.html "Localization Methods") . ###### Pending Status for the Checkout Toolkit You can pass the `wait_on_payment confirmation` field as 'true' to keep the iframe open in a pending state. The `onCheckoutPaymentPending` event is triggered, which returns the payment object. The user is redirected to a **pending** status page while they complete their payment. Pay codes or instructions are displayed if they are present in the payment object. The **pending** status page has a default timeout of 10 minutes. The iframe is then closed and the `onCheckoutPaymentExpired` event is triggered if the payment is not completed within that timeframe. The merchant can pass the `payment_expiration` parameter for the [Create Checkout Page](create-checkout-page.html "Create Checkout Page") request to shorten the 10 minute payment timeframe. **Note:** Do not set a limit on the height. ###### 3DS Authentication Redirect You can pass the `wait_on_payment_redirect` field as 'true' to apply a checkout experience for card payments with 3DS verification included. The `onCheckoutPaymentPending` event is triggered, which returns the payment object. The user is redirected and completes the 3DS verification. The iframe closes when the `onCheckoutPaymentSuccess` event is triggered when the payment is completed, or if the `onCheckoutPaymentFailure` event is triggered if the payment is incomplete or an error is encountered. ###### Custom CSS ###### Elements The table below lists all the available elements: Description of Body Parameters | | | | --- | --- | | Body Parameter | Description | | tooltip | Tooltips, used for displaying extra information about certain fields, e.g. CVV Code in card payments | | submit | Submit button | | input | Input fields | | dropdown | Drop down lists | | clear | Clear button, used for clearing the input in input fields and drop down lists | | global | An element designed for general configurations

**Note**: See below for more details | ###### Global Elements * **fonts** array: global.fonts is an array of custom fonts, which can hold either a url or an object, as seen in the example below. The family set in global.fonts can be used in the fontFamily CSS property. * * CSS * global = { fonts: \[\ "https://fonts.googleapis.com/css2?family=Mulish:wght@200&display=swap",\ {\ family: 'myCustomFont',\ src: '/fonts/myCustomFontRegular.woff2',\ fontWeight: 400\ },\ {\ family: 'myCustomFont',\ src: '/fonts/myCustomFontBold.woff2',\ fontWeight: 700\ }\ \] } * **fontSizes**: the configured sizes apply to all the texts in Checkout Toolkit. You can override the global.fontSizes by configuring fonts per element. The fontSizes supports every CSS unit, (for example, rem, px). ### Note * We recommend using rem units, to keep the app responsive to all device sizes (as the UI is designed on rem units). * Rapyd's UI is based on a root font-size of 10 pixel (1 rem = 10px). ###### Variants and States Every element can be configured with one or more of the following variants or pseudo-classes and pseudo-elements: | | | | | --- | --- | --- | | Variants and States | Decription | Elements that it applies to | | placeholder | Applied to the element's placeholder | * input

* dropdown | | disabled | Applied when the element is disabled | * input

* dropdown | | hover | Applied when the element is in a hover state | * dropdown

* submit

* clear

* button

* tooltip content | | active | Applied when the element is in an active state | * input

* dropdown

* submit

* clear

* tooltip button | | error | Applied when the element is in an error state | * input

* dropdown | | focus | Applied when the element is in focus while navigating a web page using the TAB key (or equivalent) | * input

* dropdown | | selection | Applied to a selected text within an element | * input | | item | Applied to all the items in a drop down field | * dropdown | | list | Applied to the full list in a drop down field | * dropdown | | base | The default style | * input

* dropdown

* submit

* clear

* tooltip button

* tooltip content | ###### CSS Properties Each specified property name must be in camel case, for example, borderRadius not border-radius. ###### Toolkit Default Theme and Available CSS Properties * * CSS * const defaultTheme = { "global": { "fonts": \[\], "fontSizes": { "extraSmall": "1.2rem", "small": "1.4rem", "medium": "1.6rem", "large": "2rem", "extraLarge": "4rem" }, "input": { "base": { "borderColor": "#e9ecef", "backgroundColor": "#fff", "borderRadius": "4px", "color": "#1a1a1a", "fontSize": "1.4rem", "fontWeight": 500, "fontFamily": "" }, "active": { "borderColor": "#0046ff", "backgroundColor": "", "color": "", "labelColor": "#0046ff" }, "error": { "borderColor": "#ff3650", "backgroundColor": "", "color": "", "labelColor": "#ff3650" }, "focus": { "outline": "none" }, "placeholder": { "fontSize": "1.4rem", "fontWeight": 500, "color": "#9ba2a7", "fontFamily": "" }, "selection": { "color": "", "backgroundColor": "" }, "disabled": { "backgroundColor": "#fbfbfb", "color": "" } }, "cardFields": { "title": { "color": "" }, "saveForFutureLabel": { "color": "" } }, "requiredFields": { "title": { "color": "" } }, "orderDetails": { "title": { "color": "" }, "totalLabel": { "color": "" }, "totalValue": { "color": "" } }, "pciMessage": { "color": "" }, "dropdown": { "backgroundColor": "", "title": { "color": "" }, "base": { "fontSize": "1.4rem", "fontWeight": 500, "color": "#1a1a1a", "borderColor": "#e9ecef", "backgroundColor": "#fff", "borderRadius": "4px", "fontFamily": "" }, "active": { "borderColor": "#0046ff", "backgroundColor": "", "color": "" }, "error": { "borderColor": "#ff3650", "backgroundColor": "", "color": "#ff3650" }, "focus": { "outline": "none" }, "placeholder": { "fontSize": "1.4rem", "fontWeight": 500, "color": "#000", "fontFamily": "" }, "disabled": { "color": "#9ba2a7", "backgroundColor": "#fbfbfb" }, "item": { "transition": "0.3s", "base": { "backgroundColor": "#fff", "color": "#1a1a1a", "fontFamily": "" }, "active": { "backgroundColor": "#e9ecef", "color": "" }, "hover": { "backgroundColor": "#f6f6f9", "color": "" }, "selected": { "backgroundColor": "#e9ecef", "color": "" } }, "list": { "backgroundColor": "#ffffff", "borderRadius": "4px", "boxShadow": "0 0 4px 0 rgba(110, 119, 125, 0.16)", "border": "solid 2px #e9ecef" } }, "submit": { "base": { "backgroundColor": "", "color": "", "fontWeight": "", "fontSize": "", "borderRadius": "", "fontFamily": "", "border": "", "boxShadow": "", "width": "", "height": "", "padding": "", "cursor": "" }, "hover": { "backgroundColor": "", "color": "", "fontWeight": "", "borderRadius": "", "border": "", "boxShadow": "", "transition": "0.3s" }, "active": { "color": "", "backgroundColor": "" } }, "clear": { "base": { "width": "24px", "height": "24px", "padding": "10px", "borderRadius": "50%", "backgroundColor": "transparent", "cursor": "pointer" }, "hover": { "backgroundColor": "#e9ecef", "transition": "0.3s" }, "active": { "backgroundColor": "#d7dbdf" } }, "tooltip": { "button": { "base": { "width": "16px", "height": "16px", "border": "solid 1px #6e777d", "borderRadius": "50%", "backgroundColor": "#ffffff" }, "hover": { "backgroundColor": "#e9ecef", "border": "", "borderRadius": "", "transition": "0.3s" }, "active": { "backgroundColor": "#e9ecef", "border": "", "borderRadius": "" } }, "content": { "base": { "padding": "16px 18px", "borderRadius": "4px", "boxShadow": "0 0 6px 0 rgba(0, 0, 0, 0.12)", "border": "solid 1px #ededed", "backgroundColor": "#ffffff" }, "hover": { "padding": "", "borderRadius": "", "boxShadow": "", "border": "", "backgroundColor": "", "transition": "3000ms" } } }, "cart": { "background": "none", "border": "none", "fontFamily": "inherit", "description": { "fontSize": "1.2rem", "fontWeight": 400, "color": "#1a1a1a" }, "amount": { "fontSize": "1.4rem", "fontWeight": 600, "color": "#1a1a1a" }, "quantityTitle": { "fontSize": "1.2rem", "color": "#6e777d" }, "quantityValue": { "fontSize": "1.4rem", "fontWeight": 600, "color": "#4a4a4a" }, "image": { "width": "", "height": "80px", "border": "none", "borderRadius": 0, "hover": { "border": "none", "borderRadius": 0, "transition": "0.3s" }, "focus": { "outline": "none" } } }, "instructions": { "title": { "color": "" }, "text": { "color": "" }, "numbering": { "background": "", "text": "" } } }; ###### Pass a Style Object You can pass a style object in the init method, together with the rest of the fields. See example below: * * JavaScript * let checkout = new RapydCheckoutToolkit({ pay\_button\_text: "Click to pay", // Text that appears on the 'Pay' button. // String. Maximum length is 16 characters. // Default is "Place Your Order". Optional. // If the client will pass a backgroundColor in the style object pay\_button\_color: "blue", // Color of the 'Pay' button. String. // Standard CSS color name or hexadecimal code such as #323fff. // Default is the color that is returned in the 'merchant\_color' // field of the response to 'Create Checkout Page'. Optional. id: "checkout\_9ebe58dcb9d75e8f972a35350f96c2fa", // ID of the 'Create Checkout Page' response. String. Required. close\_on\_complete: true, // Causes the embedded Rapyd Checkout Toolkit window to close // when the payment is complete. Boolean. Default is 'true'. Optional. style: { global: { fonts: \[\ "https://fonts.googleapis.com/css2?family=Mulish:wght@200&display=swap",\ {\ family: 'myCustomFont',\ src: '/fonts/myCustomFontRegular.woff2',\ fontWeight: 400\ },\ {\ family: 'myCustomFont',\ src: '/fonts/myCustomFontBold.woff2',\ fontWeight: 700\ }\ \] }, submit: { base: { backgroundColor: '#0000FF', // If passed for the 'submit' element, it will override the pay\_button\_color field. fontFamily: 'myCustomFont', } } }); In this section: In Rapyd, the sandbox environment provides most of the functionality of the production environment, without using real money. Interested persons can use the sandbox to explore Rapyd's product offering or to test software integrations with Rapyd's API. Search results -------------- No results found * [Prev](hosted-checkout-page-integration.html#idp217110) * [Next](checkout-toolkit-integration.html#idp217156) --- # Downloading a Fraudulent Transactions Report [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Collect](collect.html) * [Reports](reports.html) * Downloading a Fraudulent Transactions Report * [Prev](downloading-a-refund-report.html#idp256873) * [Next](downloading-a-fraudulent-transactions-report.html#idp256882) ##### Downloading a Fraudulent Transactions Report You can view a list of all payment transactions and their fraud status. [###### Obtaining Fraud Reports from Visa and Mastercard](#idp256882_body) The card network will submit a file to the issuing bank whenever a cardholder reports a fraudulent charge on their account. The following files can be submitted depending on the card network (Visa or MasterCard). * **TC40 (Visa)**: This is a record filed by a Visa issuing bank whenever a cardholder reports a fraudulent charge on their account. The file is sent to Visa and the merchant’s bank. * **SafeFiles (Mastercard)**: This is a record filed by a Mastercard issuing bank whenever a cardholder reports a fraudulent charge on their account. The file is sent to Mastercard and the merchant’s bank. The TC40 and SafeFiles contain details about the disputed transaction, including: the card number, merchant information, and the reason the cardholder believes the charge is fraudulent. [###### How to View Your Fraudulent Transactions](#idp256893_body) 1. Sign in as described in [Signing In to the Client Portal](signing-in-to-the-client-portal.html "Signing In to the Client Portal") and navigate to **Collect** > **Payments**. The **Payments** page appears. ![fraud-transactions-flow-1.png](image/16763ca4a770fa.png) 2. You can filter for fraudulent transactions in the payments table. 3. Select the **Filter** icon. A drop-down will appear. ![fraud-transactions-flow-2.png](image/16763ca4a8106b.png) 4. Select **Network fraud indicator** as the value for the **Field** drop-down. ![fraud-transactions-flow-3.png](image/16763ca4a8a576.png) 5. Select **Is** for the value of the **Condition** drop down. ![fraud-transactions-flow-4.png](image/16763ca4a92d1a.png) 6. Check the box for the **Yes** value in the **Value** drop down. ![fraud-transactions-flow-5.png](image/16763ca4a9b92a.png) 7. (Optional) Click **Save filter set** to save this filter for later. 8. Click **Apply**. 9. Your filtered payments appear on the table. 10. Another way to view your fraudulent transactions is to add columns to the payments table. 11. Click the **Customize columns** icon. A drop-down will appear. ![fraud-transactions-flow-6.png](image/16763ca4aa4722.png) 12. Check the box for the following columns: * Network fraud indicator * Fraud type 13. Click **Apply**. [###### How to Download a Fraud Report](#idp256961_body) You can download a report of payments collected in a defined time period. The report is in CSV format. This procedure requires **Owner**, **Administrator**, or **Editor** privileges. 1. Tap the **Export** icon on the top right corner of the page. The **Export data** dialog box appears. ![fraud-transactions-flow-7.png](image/16763ca4aae340.png) 2. Select a day or range of dates. 3. Select one of the following: * **All Columns** - Exports all of the data columns. * **Visible Columns** - Exports only the data columns that are currently displayed. 4. Tap **Export**. * If 1-99 records were displayed when you opened the **Export data** dialog box: * The file is downloaded immediately to the **Downloads** folder on your local computer. * If 100 or more records were displayed when you opened the **Export data** dialog box: * A pop-up message confirms that your report is being processed. When your report is ready, Rapyd sends you a notification by email. * In the email message, tap **Get File**. The file is downloaded to the **Downloads** folder on your local computer. [###### Report Format](#idp257010_body) Line 1 contains a list of headers. Each header is a column heading in the **Payments** page. For a description of the headers, see the table below. All subsequent lines contain the collection transactions, one payment record per line. [###### Description of Fields](#idp257015_body) The following table describes the fields in the **Payments** table. | Field | Description | | --- | --- | | Network fraud indicator | Indicates if the payment has been reported as fraudulent by the Visa TC40 and Mastercard SafeFiles reports.

Possible values:

* Yes

* No | | Fraud Type | A text string that describes the type of fraud for the payment. | | Fraud reported date | The date and time the payment was reported as fraudulent. | | Category | Category of payment method type used for the transaction:

* **bank\_redirect**

* **bank\_transfer**

* **cash**

* **card**

* **ewallet** | | Country | The country of the transaction. | | Created At | Date and time of creation of the payment. | | Currency | Three-letter ISO 4217 code for the currency used in the **Amount** field. | | Customer ID | ID of the customer who paid the money. String starting with **customer\_**. | | Expiration Date | End of the time allowed for customer to complete this payment.

Relevant to cash, bank redirect and bank transfer. | | Merchant Reference ID | Identifier for the transaction. Defined by the merchant. | | 3DS authenticated | The 3DS authentication status for the payment. For card payments only. | | Failure code | The provided reason why the payment failed. For card payments only. | | Metadata | A JSON object defined by the Rapyd partner. | | Paid Amount | The amount received by the recipient after the payment is completed, in units of the currency defined in **Currency** . | | Paid At | Date and time that the payment was completed. | | Payment ID | The payment ID, a string starting with **payment\_** . | | Payment Method | The name of the specific payment method type. For example: **us\_debit\_mastercard\_card**. | | Refunded | Indicates whether there was a refund against this payment. **True** or **False** . | | Refunded Amount | The total amount refunded against this payment, in units of the currency defined in **Currency**. | | Requested Amount | The requested amount, in units defined by **Currency**. Corresponds to the **original\_amount** field in the Payments API. | | Statement Descriptor | A text description suitable for the customer's statement. | | Status | Indicates the status of the payment. One of the following:

* **Active** - Active and awaiting completion.

* **Canceled** - The payment was canceled.

* **Closed** - The transaction is complete.

* **Error** - Error. An attempt was made to complete the payment, but it failed.

* **EXP** - The payment has expired. | In this section: Search results -------------- No results found * [Prev](downloading-a-refund-report.html#idp256873) * [Next](downloading-a-fraudulent-transactions-report.html#idp256882) --- # Bank Payout United States [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payout Method Types](payout-method-types.html) * [Americas](americas-497167.html) * Bank Payout United States * [Prev](americas-497167.html#idp237639) * [Next](bank-payout-united-states.html#idp237656) ##### Bank Payout United States Disburse funds directly to a bank account. | `Enterprise` **us\_local\_bank** is a new local bank payout method type used for payouts in the United States. A sender can disburse funds into a beneficiary's bank account in the United States. This payout method supports several banks in the region and allows the beneficiary to be paid in the country's local currency. The benefits for the user include the ability to create payouts through local bank transfers and disburse funds into American bank accounts. [###### Finding Required Fields for the Payout Method Type](#idp237656_body) You need to find the required fields for each payout method type. For that, you'll use [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields") . Enter **us\_local\_bank** as the value for the `payout_method_type` path parameter. [###### Requesting a Payout](#idp237663_body) Use [Create Payout](create-payout.html "Create Payout") with the following parameters: Create Payout Request Parameters | | | | --- | --- | | **Body Parameter** | **Description** | | ewallet | Enter the wallet 'id' that you received when you created the company wallet in your sandbox. | | payout\_amount | Enter 100 as the amount received by the beneficiary. | | payout\_method\_type | Enter **us\_local\_bank** as the payout method type. | | sender\_currency | Enter **USD** as the code for United States Dollar, the sender's currency. | | sender\_country | Enter **US** as the code for the United States, the sender's country. | | beneficiary\_country | Enter **US** as the code for the United States, the beneficiary's country. | | payout\_currency | Enter **USD** as the code for the United States Dollar, the currency received by the beneficiary. | | sender\_entity\_type | Enter 'individual' as the type of entity for the sender. | | beneficiary\_entity\_type | Enter 'individual' as the type of entity for the beneficiary. | | beneficiary | Enter a `beneficiary object` that has the following fields:

* **company\_name** - company

* **first\_name** - individual

* **last\_name** - individual

* **iban** - individual or company

* **account\_number** - individual or company

* **account\_type** - individual or company

* **aba** - individual or company

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | sender | Enter a `sender` object that has the following fields:

* **company\_name** - company

* **country\_of\_incorporation** - company

* **date\_of\_incorporation** - company

* **first\_name** - individual

* **last\_name** - individual

* **nationality** - individual

* **date\_of\_birth** - individual

* **identification\_value** - individual or company

* **identification\_type** - individual

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | description | Enter 'salary payout - wallet to bank account' as the description of the payout transaction. | | payout\_options | Enter a `payout_options` object with the following fields:

* **statement\_descriptor** | [###### Create Payout Response](#idp237837_body) [Create Payout](create-payout.html "Create Payout") describes the fields in the response. [###### Local Bank Payout United States Details](#idp237841_body) | | | | --- | --- | | **Details** | **Description** | | Payout Method Category | bank | | Payout Request String | POMT = us\_local\_bank | | Country | United States | | Sender Currency | USD, ISK, GBP, EUR, SGD, HKD, AUD | | Transaction Limits | N/A | | Settlement Timeframe | 3 days | In this section: Search results -------------- No results found * [Prev](americas-497167.html#idp237639) * [Next](bank-payout-united-states.html#idp237656) --- # Hosted Beneficiary Details Page [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Disburse](rapyd-disburse.html) * [Rapyd Disburse Features](rapyd-disburse-features.html) * Hosted Beneficiary Details Page * [Prev](validating-beneficiary-details.html#idp233928) * [Next](hosted-beneficiary-details-page.html#idp234073) ##### Hosted Beneficiary Details Page Easily collect your beneficiary details for future payouts. | `Enterprise` Rapyd Disburse can be used to pay beneficiaries such as a contractor, workers, suppliers, or businesses anywhere in the world. The Hosted Beneficiary Details Page allows Rapyd to collect a [beneficiary's](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_beneficiary "Beneficiary") sensitive information through a secure web form for future payouts. To learn more about reusing beneficiary's information in future payouts, refer to [Reusing Beneficiary or Sender](reusing-beneficiary-or-sender.html "Reusing Beneficiary or Sender") . * You need to pay a contract worker, on a regular basis and you need an efficient way to securely collect and store their personal information. * You need to capture and safely store business account information so that you can easily send repeat payouts to your business supplier. [###### Hosted Beneficiary Details Page Flow](#idp234073_body) ![account-details.jpg](image/16763ca39c2be5.jpg) 1. You request Rapyd to generate a single, or multiple [Hosted Beneficiary Details Pages](save-beneficiary-details.html "Save Beneficiary Details") for different beneficiaries. 2. Rapyd processes your request and sends a response with the [redirect URL](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_redirect "Redirect URL") . 3. You display the redirect URL to the customer. 4. The customer completes and submits their information on the hosted page. 5. Rapyd generates an ID for each beneficiary to reuse in the future. [###### Beneficiary Tokenization Message Sequences](#idp234091_body) The message sequence diagrams below describe how information is exchanged between Rapyd, the merchant, and the merchant's customers. Create Beneficiary Tokenization Page ![beneficiary-via-hosted-page.svg](image/16763ca39ce2a3.svg) [###### Beneficiary Tokenization Page Statuses](#idp234098_body) The finite state diagram below summarizes the statuses for the beneficiary tokenization page. ![hosted-page.svg](image/16763ca30eab95.svg) Description of Statuses | Status | Description | | --- | --- | | NEW | New - The beneficiary tokenization hosted page was created. | | DON | Done - The hosted page was completed. The beneficiary details were submitted. | | EXP | Expired - The beneficiary tokenization hosted page has expired. | [###### How Beneficiary Accounts Work](#idp234131_body) Beneficiary information is collected through a hosted page and is tokenized (stored in a digital asset form). Rapyd securely collects the data so you don't have to manually gather, store, and send sensitive information. In addition, you can generate multiple hosted pages sent to different beneficiaries by email to collect this information using the Rapyd Client Portal as described on the [Save Beneficiary Details](save-beneficiary-details.html "Save Beneficiary Details") page for the Client Portal Guide. * The hosted page supports the following payout methods: * Bank transfers * Cards [###### Generate a Hosted Page](#idp234143_body) You can create a hosted page with the [Create Beneficiary Tokenization Page](create-beneficiary-tokenization-page.html "Create Beneficiary Tokenization Page") API using POST method. ### Merchant Reference ID `merchant_reference_id` is an identifier for the beneficiary that links to the merchant, which is returned in the API response. ###### Generate Hosted Page Request The [Create Beneficiary Tokenization Page](create-beneficiary-tokenization-page.html "Create Beneficiary Tokenization Page") describes the parameters in the request. * * Request * { "category": "bank", "sender\_entity\_type": "company", "sender\_country": "US", "merchant\_reference\_id": "A-1013", "beneficiary\_country": "US", "beneficiary\_entity\_type": "company", "beneficiary\_optional\_fields": { "last\_name": null, "first\_name": null, "company\_name": "TestBeneficiaryCompany", "identification\_type": "company\_registered\_number", "identification\_value": "123456789" } } ### Beneficiary Optional Fields The `beneficiary_optional_fields` object is optional to create a hosted page but is required once you create a beneficiary. Refer to the **beneficiary\_optional\_fields** in the [Create Beneficiary Tokenization Page](create-beneficiary-tokenization-page.html "Create Beneficiary Tokenization Page") for more details. * If these fields are passed in the request, then the beneficiary will not need to fill them in again. * If these fields are not passed in the request, then the beneficiary will be required to fill them in on the hosted page. ### Extended Beneficiary Details Creating an extended beneficiary allows a merchant to collect additional information about their beneficiary before creating a payout. A beneficiary token ID is created, and is then passed in the [Create Payout](create-payout.html "Create Payout") request. If the value for `beneficiary _extended_fields` is set to `true`, then the Hosted Beneficiary Details page will have additional fields to gather the information about the extended beneficiary. For example, you could use an extended beneficiary for a payout if you are: * Making disbursements to independent content creators * Creating payouts for entertainment-based business platforms * Making a local payout to a supplier See [Create Extended Beneficiary](create-extended-beneficiary.html "Create Extended Beneficiary") for more information. ###### Generate Hosted Page Response The following response lists the `redirect_url` to display the Hosted Beneficiary Account Details Page for the end user to enter in sensitive information (card number, bank account number, etc.). [Create Beneficiary Tokenization Page](create-beneficiary-tokenization-page.html "Create Beneficiary Tokenization Page") that describes the fields in the response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "bb178b63-7134-40c9-9818-b04950f541ac" }, "data": { "id": "hp\_ben\_d0e257f33e5ef13956ac6037ccb36909", "status": "NEW", "category": "bank", "sender\_entity\_type": "company", "sender\_country": "US", "merchant\_reference\_id": "A-1013", "beneficiary\_entity\_type": "company", "beneficiary\_country": "US", "beneficiary\_currency": "USD", "sender\_currency": "USD", "beneficiary\_id": null, "payout\_method\_type": null, "beneficiary\_validated": false, "redirect\_url": "https://sandboxhosted.rapyd.net/disburse/beneficiary?token=hp\_ben\_d0e257f33e5ef13956ac6037ccb36909", "merchant\_customer\_support": { "email": null, "url": null, "phone\_number": null }, "expiration": 1614196794, "timestamp": 1612987194, "beneficiary\_optional\_fields": { "last\_name": null, "first\_name": null, "company\_name": "TestBeneficiaryCompany", "identification\_type": "company\_registered\_number", "identification\_value": "123456789" }, "payout\_method\_types\_include": null, "payout\_method\_types\_exclude": null, "complete\_url": null, "cancel\_url": null } } [###### Redirect Your Customer](#idp234204_body) Redirect your customer to the URL you received in the `redirect_url` field for the response. ### Page Expiration The hosted beneficiary page expires 14 days after creation by default. [###### Gathering Information on the Hosted Page](#idp234211_body) The end user or beneficiary will enter in their details on the hosted page below. ![6480848894774.png](image/16763ca39d7954.png) * Hosted pages can be customized using the Client Portal as described in [Customizing Your Hosted Page](customizing-your-hosted-page.html "Customizing Your Hosted Page") . * The following languages are supported: English, Icelandic, German, Spanish, Simplified Chinese, Traditional Chinese, Korean, Portuguese, Thai, Indonesian, and Tagalog. Specify your language preference in the language parameter field when generating the page. [###### Generate IDs for Each Beneficiary](#idp234223_body) * Rapyd generates a beneficiary ID to represent each beneficiary submitted through the hosted page form. You will receive the beneficiary IDs in the [Webhook - Beneficiary Created](beneficiary-created-webhook.html "Beneficiary Created Webhook") after the form is submitted. ### Setting Up a Webhook When beneficiary information is captured, Rapyd sends a webhook. Configure your system to receive webhooks with the procedure described in [Defining a Webhook Endpoint](defining-a-webhook-endpoint.html "Defining a Webhook Endpoint") . [###### Create Payout](#idp234233_body) You can now use these beneficiary IDs to process payouts with Rapyd Disburse using [Create Payout](create-payout.html "Create Payout") or [Mass Payouts](mass-payouts.html "Mass Payouts") in the Client Portal. [###### Beneficiary Account Details Toolkit Integration](#idp234238_body) Before embedding the toolkit into your page, follow steps 1 and 2 to create your Hosted Beneficiary Account Details Page. Once you create the hosted page, in the API response, you’ll receive the ID of the Beneficiary Account Details Hosted page object, a string starting with hp_ben_, (for example: id: "hp\_ben\_d0e257f33e5ef13956ac6037ccb36909"). Add the following code to your Beneficiary Account Details page: 1. Add a **Note**: To run this method in the [sandbox](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_sandbox "Sandbox") , use the following code: 2. Add a tag with `id="rapyd-toolkit"`:
3. Initialize the Beneficiary Account Details with the following fields: * * Javascript * lettoolkit=newRapydToolkit({ button\_text: "Submit", // Text that appears on the 'Submit' button. // String. Maximum length is 16 characters. // Default is "Place Your Order". Optional. button\_color: "blue", // Color of the 'Submit' button. String. // Standard CSS color name or hexadecimal code such as #323fff. // Default is the color that is returned in the 'merchant\_color' // field of the response to 'Create Beneficiary Account Details Page'. Optional.id: "hp\_ben\_d0e257f33e5ef13956ac6037ccb36909", // ID of the 'Create Beneficiary Account Details Page' response. String. Required.close\_on\_complete: true, // Causes the embedded Rapyd Beneficiary Account Details Toolkit window to close // when the submission is complete. Boolean. Default is 'true'. Optional. page\_type: “beneficiary\_token” /\* Mandatory for beneficiary account details page Default is "collection". \*/ }); 4. Call display Toolkit() to display the Beneficiary Account Details page. toolkit.displayToolkit(); 5. Optional step. If `close_on_complete` is set to **false**, call `toolkit.closeToolkit()` to close the Rapyd Beneficiary Account Details Toolkit window. toolkit.closeToolkit(); 6. Insert your code that runs when the following events occur. Use your code to read the event field in the window object. * * Javascript * { window.addEventListener('onCreateBeneficiarySuccess', (event) => { console.log(event.detail) // Returns 'Beneficiary' object.// Client code. }) window.addEventListener('onBeneficiaryFailure', (event) => { console.error(event.detail.error) // Returns an error message from the API.// Client code. }) window.addEventListener('onLoading', (event) => { console.error(event.detail.error) // returns true or false depending on the loading state// client code }) [###### Sample Embedded Beneficiary Account Details](#idp234285_body) Here's an example of a Beneficiary Account Details page created using the Toolkit: * * HTML * Rapyd Beneficiary Account Details Toolkit

Rapyd Beneficiary Account Details Toolkit Demo

### Success Event On successful submission, the clients receive an **onCreateBeneficiarySuccess** event with the [Beneficiary Object](beneficiary.html "Beneficiary") . Take note of the following Beneficiary Object fields and the tasks associated with each of them. | | | | | --- | --- | --- | | Field | Description | Action | | `id` | ID of the 'beneficiary' object. String starting with beneficiary\_. | You can capture the beneficiary ID which is the unique identifier of the individual or company receiving the payout. Use the ID to validate or retrieve the beneficiary. | | `entity_type` | Type of entity. One of the following values: individual company | An individual may include more personal information. Their first name and last name should match the name on the identification\_type. | | `identification_type` | Type of identification document for the beneficiary. When entity\_type is company, this field must be company\_registered\_number. When entity\_type is individual, one of the following values: drivers\_license identification\_id international\_passport residence\_permit social\_security work\_permit | identification\_value should be the identification number on the document. | **Recommendation**: Be sure to implement navigation elements (e.g. back, return, or cancel) on your website when embedding the Toolkit Integration solution. ### Setting Up a Webhook When beneficiary information is captured, Rapyd sends a webhook. Configure your system to receive webhooks with the procedure described in [Defining a Webhook Endpoint](defining-a-webhook-endpoint.html "Defining a Webhook Endpoint") . In this section: A person or business that receives funds from a [disburse](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_disburse) (payout) transaction. A web address that points the user to a different web page. In Rapyd, the sandbox environment provides most of the functionality of the production environment, without using real money. Interested persons can use the sandbox to explore Rapyd's product offering or to test software integrations with Rapyd's API. Search results -------------- No results found * [Prev](validating-beneficiary-details.html#idp233928) * [Next](hosted-beneficiary-details-page.html#idp234073) --- # Creating a Dispute [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Disputes](disputes.html) * Creating a Dispute * [Prev](viewing-dispute-details.html#idp264213) * [Next](creating-a-dispute.html#idp264308) #### Creating a Dispute You can create a dispute for a processed card transaction. [##### How to View Dispute Details](#idp264308_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Issuing** > **Card Transactions** > **Issued Card Transactions**. The **Card transactions** page appears. ![create-dispute-flow-1.png](image/16763ca54c05fd.png) **Note**: You can also navigate to **Wallets** > **Transactions** > **Issued Cards** to create a dispute for a card transaction. 2. Hover over the row that contains the transaction you want to dispute and then click the **Create dispute** icon. ![create-dispute-flow-2.png](image/16763ca54ca231.png) 3. The **Create dispute** dialog box appears. ![create-dispute-flow-3.png](image/16763ca54d4bee.png) 4. In the **Dispute details** section, fill out the following fields: * Dispute category - the category that describes the type of dispute * Amount - the numerical amount being disputed 5. Click **Next**. ![create-dispute-flow-4.png](image/16763ca54de3aa.png) 6. The **Dispute method** section of the dialogue box appears. ![create-dispute-flow-5.png](image/16763ca54e7aed.png) ### Downloading the Dispute Form You can download a PDF copy of the dispute form. Do the following: * Click on the **Dispute form** button in the **Dispute method** section of the **Create dispute** dialog box. * The PDF form appears in the **Downloads** folder of your computer. 7. Upload a Cardholder letter by clicking the **+** button. The letter summarizes the case and the supporting evidence. **Note**: The cardholder letter must be in PDF format. The cardholder letter does not have to be uploaded right away. The dispute can be saved and the letter file can be uploaded later. ![create-dispute-flow-6.png](image/16763ca54f06c8.png) 8. Add the Description - a textual description of the dispute. 9. Click **Open dispute**. ![create-dispute-flow-7.png](image/16763ca5505d57.png) 10. The success window appears. ![create-dispute-flow-8.png](image/16763ca550f974.png) In this section: Search results -------------- No results found * [Prev](viewing-dispute-details.html#idp264213) * [Next](creating-a-dispute.html#idp264308) --- # Rapyd Collect [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * Rapyd Collect * [Prev](api-reference.html#idp269645) * [Next](rapyd-collect-363484.html#UUID-26f072dc-d301-c4e7-f743-19095ba462ff_section-idm4588479746868833801859853483) ### Rapyd Collect Collect a payment from a customer and deposit it into one or more Rapyd Wallets. #### Collection There are different payment mechanisms for different client needs. The following API methods enable those capabilities: * [Payment](payment.html "Payment") - Collect money from a payment method and deposit it into one or more Rapyd Wallets. * [Checkout Page](checkout-page.html "Checkout Page") - Collect money from a customer without handling personal identifying information (PII). * [Payment Link](payment-link.html "Payment Link") - Create a reusable hosted payment page for multiple payments. * [Group Payment](group-payment.html "Group Payment") - Collect money from multiple customers. * [Escrow](escrow-542745.html "Escrow") - Hold collected funds temporarily in an escrow. * [Refund](refund.html "Refund") - Refund all or part of a payment. * [Digital Wallet](digital-wallet.html "Digital Wallet") - Create payments from digital wallets such as Apple Pay and Google Pay. * [Dispute](dispute.html "Dispute") - Handle customer disputes. #### Customer Profiles Each customer has one or more payment methods. These can be saved to a customer profile for later use. * [Customer](customer.html "Customer") - Store customer payment methods for future use. * [Address](address.html "Address") - Store a customer's address. * [Payment Method Type](payment-method-type.html "Payment Method Type") - Understand and find payment methods that a customer can use for making payments. * [Customer Payment Method](customer-payment-method.html "Customer Payment Method") - Add payment methods to customer profiles. * [Card Token](card-token.html "Card Token") - Store card payment methods without handling personal identifying information (PII). #### Orders and Returns Customers can order and pay for specific products in the client's inventory. The following API methods provide the means for handling both sides of these transactions: * [SKU](sku.html "SKU") -Define items of physical inventory for orders. * [Order](order.html "Order") - Define a single order of goods. * [Return](return.html "Return") - Accept a return of an order of goods. #### Discounts and Reusable Coupons You can define coupons in many different ways and connect them to customers, subscriptions and orders. Use the following API methods: * [Coupon](coupon.html "Coupon") - Define a discount on charges to the customer. * [Discount](discount.html "Discount") - Handle discounts for a specific customer profile or subscription. #### Related Information * [Subscription](subscription.html "Subscription") - Define recurring payments. In this section: Search results -------------- No results found * [Prev](api-reference.html#idp269645) * [Next](rapyd-collect-363484.html#UUID-26f072dc-d301-c4e7-f743-19095ba462ff_section-idm4588479746868833801859853483) --- # Card Eligibility for Card Payouts [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Disburse](rapyd-disburse.html) * [Rapyd Disburse Features](rapyd-disburse-features.html) * Card Eligibility for Card Payouts * [Prev](payout-with-fx.html#idp232576) * [Next](card-eligibility-for-card-payouts.html#idp232927) ##### Card Eligibility for Card Payouts Retrieve beneficiary card information. Currently available for Visa cards. | `Enterprise` Rapyd’s API allows you to retrieve information about a beneficiary’s card. This allows you to determine if their card is eligible for card payouts called **Original Credit Transactions (OCT)** and card payments called **Account Funding Transactions (AFT)**. Determining eligibility for Original Credit Transactions validates if the card can be used for person-to-person transfers and disbursements. The card information the API provides can include: the card scheme, the card issuer, and the card issuer country. Determining eligibility for Account Funding Transactions validates if the card can be used for domestic or international transactions. The merchant can create a better experience for their customers by determining the card eligibility for a card payout or card payment. [###### Retrieve Card Eligibility Workflow](#idp232927_body) ![card-eligibility-flow-1.png](image/16763ca3994229.png) 1. You request Rapyd to retrieve the card metadata with the card number or card ID. 2. Rapyd processes your request. 3. The card metadata is provided by the Card Network (Visa). 4. You receive the response with the card metadata from Rapyd. [###### How Card Eligibility for Card Payouts Works](#idp232941_body) Description of Path Parameters See [Retrieve Card Eligibility Details](retrieve-card-eligibility-details.html "Retrieve Card Eligibility Details") for additional details about the parameters. | | | | | --- | --- | --- | | Path Parameter | Required | Description | | card\_number | yes - either card number or card ID is required | 16 - 19 digits | | card\_id | yes - either card number or card ID is required | The ID of the card. A string starting with **card\_**. | | transaction\_type | yes | Possible values:

* oct

* aft

* all | ###### Retrieve Card Eligibility Details Request * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/cards/eligibility // Message body: { "card\_number": "4895070000003551", "transaction\_type": "all" } ###### Retrieve Card Eligibility Details Response [Retrieve Card Eligibility Details](retrieve-card-eligibility-details.html "Retrieve Card Eligibility Details") describes the fields in the response. * * Response * { "status": { "error\_code": "0", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "a1036ba7-7dbf-410d-b31e-eca3236ed79c" }, "data": \[\ "scheme":\ "card\_type":\ "billing\_currency":\ "issuer":\ "issuer\_country":\ "product\_type":\ "oct":{\ "money\_transfer\_domestic": standards,\ "money\_transfer\_international": fast\_funds,\ "non\_money\_transfer\_domestic": fast\_funds\ "non\_money\_transfer\_international": standards,\ "online\_gambling\_domestic": not\_supported,\ "online\_gambling\_international": not\_supported\ }\ "aft":{\ "domestic": true,\ "international": false,\ }\]} In this section: Search results -------------- No results found * [Prev](payout-with-fx.html#idp232576) * [Next](card-eligibility-for-card-payouts.html#idp232927) --- # Subscription [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * Subscription * [Prev](checkout-errors.html) * [Next](subscription.html#UUID-cd8591ec-a6e3-4ea7-08d1-f5b515199e2e_section-idm4614408696299233900795981128) #### Subscription Rapyd provides the ability to create payments automatically every month or other defined interval. This is called a subscription, and it has the following prerequisites: * A customer profile with a payment method. See [Customer](customer.html "Customer") . * One or more products of type service. See [Product](product.html "Product") . * One or more plans that describe the charges for services covered by the subscription. See [Plan](plan.html "Plan") . ##### In This Section * [Product](product.html "Product") - Defines a service for periodic billing. * [Plan](plan.html "Plan") - Defines the pricing structure for a service. * [Subscription](subscription-364807.html "Subscription") - Defines the periodic billing, as created through the API. * [Subscription - Hosted Page](subscription---hosted-page.html "Subscription - Hosted Page") - Defines a customer-facing page for creating periodic payments. * [Subscription Item](subscription-item.html "Subscription Item") - Defines a line item for a plan, as it appears in the subscription. * [Usage Record](usage-record.html "Usage Record") - Indicates the quantity for a subscription item whose plan is based on metered billing. * [Invoice](invoice.html "Invoice") - Defines the charge made to a customer's payment method for each billing cycle. * [Invoice Item](invoice-item.html "Invoice Item") - Defines a line item for an invoice. In this section: Search results -------------- No results found * [Prev](checkout-errors.html) * [Next](subscription.html#UUID-cd8591ec-a6e3-4ea7-08d1-f5b515199e2e_section-idm4614408696299233900795981128) --- # Local Bank Payout [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payout Method Types](payout-method-types.html) * Local Bank Payout * [Prev](bank-account-payout.html#idp235123) * [Next](local-bank-payout.html#idp235153) #### Local Bank Payout Payout with a common, cost effective way to send money via local payment scheme. | `Enterprise` Common use cases may include: * Local payout to your own or your customer’s bank account * Local payout to an employee's bank account * Local payout to a supplier ([B2B](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_business_to_business "Business-to-Business") ) A lender wants to disburse a loan booked via a website or mobile application that is integrated on the Rapyd platform. Your finance manager uses a company wallet to disburse loans into customer bank accounts. Your finance manager starts the process for sending a customer's funds by collecting the routing number and account information. Your website back end asks Rapyd to process the payout. Rapyd processes the payout. The Rapyd platform notifies your website back end when the payout is complete. [##### Payout to Bank Account Workflow](#idp235153_body) Using a payout method such as (`gb_local_bank`) and the corresponding required fields that beneficiaries fill out is described under How it Works. [###### Step 1: Requesting a Payout](#idp235157_body) ![request-a-payout-ach.jpg](image/16763ca3a1c504.jpg) 1. Collect routing and account information to disburse the funds. 2. Specify the reason code in the request (for example, salary). 3. The website back end asks Rapyd to process the payout to a GB bank. [###### Step 2: Processing the Payout](#idp235169_body) ![process-ach.jpg](image/16763ca3a25680.jpg) 1. Rapyd processes the payout to the bank. 2. The bank credits the customer's bank account with the money from the company wallet. 3. Rapyd notifies the website back end that the payout is complete. [##### How a Local Bank Payout Works](#idp235181_body) ### Prerequisites To run the examples of this use case, you must create the following ID in your own [sandbox](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_sandbox "Sandbox") : * **ewallet** - Run [Creating a Rapyd Wallet](creating-a-rapyd-wallet.html "Creating a Rapyd Wallet") for the company wallet. Use the 'id' you get in the response. The payout would be funded from the ewallet instructed in the payout request. [###### Finding Payout Method Types](#idp235192_body) For the payout page on your website, you need to find payout method types that match your criteria, such as the payout country and currency. In this example, you'll find local bank payout method types that support transfers in British pounds to a [beneficiary](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_beneficiary "Beneficiary") in the United Kingdom. For that, you'll use [List Payout Method Types](list-payout-method-types.html "List Payout Method Types") with the following parameters: Description of Query Parameters | | | | --- | --- | | Query Parameter | Description | | category | Enter **bank** as the category of the payout method. | | beneficiary\_country | Enter **GB** as the code for the United Kingdom, the beneficiary's country. | | payout\_currency | Enter **GBP** as the code for British pounds, the currency received by the beneficiary. | ###### List Payout Method Types Request You ask for a list of all available bank payout method types for transfers in Great Britain that are done in GBP. * * Request * // Request URL: GET https://sandboxapi.rapyd.net/v1/payouts/supported\_types?category=bank&beneficiary\_country=GB&payout\_currency=GBP // Message body absent * * .NET Core * using System; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string category = "bank"; string beneficiaryCountry = "GB"; string payoutCurrency = "GBP"; string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payouts/supported\_types?category={category}&beneficiary\_country={beneficiaryCountry}&payout\_currency={payoutCurrency}"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('../../../../../Utilities/JS/utilities').makeRequest; async function main() { try { const result = await makeRequest('GET', '/v1/payouts/supported\_types?category=bank&beneficiary\_country=GB&payout\_currency=GBP'); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * * * Python * from pprint import pprint from utilities import make\_request beneficiary\_country = 'GB' category = 'bank' payout\_currency = 'GBP' path = f'/v1/payouts/supported\_types?category={category}&' \\ f'beneficiary\_country={beneficiary\_country}&' \\ f'payout\_currency={payout\_currency}' results = make\_request(method='get', path=path) pprint(results) ###### List Payout Method Types Response Let's take a look at the response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "5a9fa131-10bb-42b6-8659-934d9fee57a1" }, "data": \[\ "payout\_method\_type": "gb\_local\_bank",\ "name": "Local UK payouts",\ "is\_cancelable": 0,\ "is\_expirable": 0,\ "is\_location\_specific": 0,\ "status": 1,\ "image": "/checkout/gb\_local\_bank.png",\ "category": "bank",\ "beneficiary\_country": "GB",\ "sender\_country": "\*",\ "payout\_currencies": \[\ "GBP"\ \],\ "sender\_entity\_types": \[\ "company",\ "individual"\ \],\ "beneficiary\_entity\_types": \[\ "company",\ "individual"\ \],\ "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": null,\ "minimum\_amount": null,\ "payout\_currency": "GBP"\ }\ \],\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "sender\_currencies": \[\ "USD",\ "SGD",\ "SEK",\ "ISK",\ "HKD",\ "GBP",\ "EUR",\ "DKK",\ "CHF",\ "AUD"\ \],\ "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method"\ },\ \ \ \ \ \ The `data` section of this example response shows that **gb\_local\_bank** is a supported GB bank payout method type in the United Kingdom.\ \ A real response usually lists many payout methods.\ \ [###### Finding Required Fields for the Payout Method Type](#idp235282_body)\ \ You need to find the required fields for the **gb\_local\_bank** payout method type.\ \ For that, you'll use [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields")\ with the following parameters:\ \ Description of Path Parameters\ \ | | |\ | --- | --- |\ | Path Parameter | Description |\ | payout\_method\_type | Enter **gb\_local\_bank** as the payout method type. |\ \ Description of Query Parameters\ \ | | |\ | --- | --- |\ | Query Parameter | Description |\ | sender\_country | Enter **GB** as the code for the United Kingdom, the sender's country. |\ | sender\_currency | Enter **GBP** as the code for British Pounds, the sender's currency. |\ | beneficiary\_country | Enter **GB** as the code for the United Kingdom, the beneficiary's country. |\ | payout\_currency | Enter **GBP** as the code for British Pounds, the currency received by the beneficiary. |\ | sender\_entity\_type | Enter **company** as the type of entity for the sender. |\ | beneficiary\_entity\_type | Enter **individual** as the type of entity for the beneficiary. |\ | payout\_amount | Enter **3000** as the amount received by the beneficiary. |\ \ ###### Get Payout Required Fields Request\ \ You ask for the set of required fields for the **gb\_local\_bank** payout method type.\ \ * * Request\ \ * // Request URL: GET https://sandboxapi.rapyd.net/v1/payout\_methods/:pomt/required\_fields?beneficiary\_country=GB&beneficiary\_entity\_type=individual&payout\_amount=3000&payout\_currency=GBP&sender\_country=GB&sender\_currency=GBP&sender\_entity\_type=company\ // Message body absent\ \ \ \ * * .NET Core\ \ * using System;\ \ namespace RapydApiRequestSample\ {\ class Program\ {\ static void Main(string\[\] args)\ {\ try\ {\ string senderCountry = "GB";\ string senderCurrency = "GBP";\ string beneficiaryCountry = "GB";\ string payoutCurrency = "GBP";\ string senderEntityType = "company";\ string beneficiaryEntityType = "individual";\ string payoutAmount = "3000";\ \ string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payout\_methods/:pomt/required\_fields?beneficiary\_country={beneficiaryCountry}&beneficiary\_entity\_type={beneficiaryEntityType}&amount={payoutAmount}")&payout\_currency={payoutCurrency}&sender\_country={senderCountry}&sender\_currency={senderCurrency}&sender\_entity\_type={senderEntityType};\ \ Console.WriteLine(result);\ }\ catch (Exception e)\ {\ Console.WriteLine("Error completing request: " + e.Message);\ }\ }\ }\ }\ \ \ \ * * JavaScript\ \ * const makeRequest = require('../../../../../Utilities/JS/utilities').makeRequest;\ \ async function main() {\ try {\ const result = await makeRequest(\ 'GET',\ '/v1/payout\_methods/:pomt/required\_fields?beneficiary\_country=GB&beneficiary\_entity\_type=individual&payout\_amount=3000&payout\_currency=GBP&sender\_country=GB&sender\_currency=GBP&sender\_entity\_type=company'\ );\ \ console.log(result);\ } catch (error) {\ console.error('Error completing request', error);\ }\ }\ \ \ \ * * PHP\ \ * \ \ \ \ * * Python\ \ * from pprint import pprint\ \ from utilities import make\_request\ \ payout\_method\_type = 'gb\_local\_bank'\ sender\_country = 'GB'\ sender\_currency = 'GBP'\ beneficiary\_country = 'GB'\ payout\_currency = 'GBP'\ sender\_entity\_type = 'company'\ beneficiary\_entity\_type = 'individual'\ payout\_amount = 3000\ \ path = f'/v1/payout\_methods/:pomt/required\_fields?beneficiary\_country={beneficiary\_country}&beneficiary\_entity\_type={beneficiary\_entity\_type}&' \\\ f'amount={payout\_amount}&payout\_currency={payout\_currency}&' \\\ f'sender\_country={sender\_country}&sender\_currency={sender\_currency}&sender\_entity\_type={sender\_entity\_type}'\ results = make\_request(method='get', path=path)\ pprint(results)\ \ \ \ \ ###### Get Payout Required Fields Response\ \ Let's take a look at the response.\ \ * * Response\ \ * {\ "status": {\ "error\_code": "",\ "status": "SUCCESS",\ "message": "",\ "response\_code": "",\ "operation\_id": "7f6a6738-b0a2-469b-89d4-26f0cb70cd06"\ },\ "data": {\ "payout\_method\_type": "gb\_local\_bank",\ "sender\_currency": "GBP",\ "sender\_country": "\*",\ "sender\_entity\_type": "company",\ "beneficiary\_country": "GB",\ "payout\_currency": "GBP",\ "beneficiary\_entity\_type": "individual",\ "is\_cancelable": 0,\ "is\_location\_specific": 0,\ "is\_expirable": 0,\ "minimum\_expiration\_seconds": null,\ "maximum\_expiration\_seconds": null,\ "is\_online": null,\ "image": "/checkout/gb\_local\_bank.png",\ "status": 1,\ "beneficiary\_required\_fields": \[\ {\ "name": "first\_name",\ "regex": "^.{1,70}$",\ "is\_required": true,\ "type": "string",\ "description": "Official first name of the bank account holder. First name and last name together should not exceed 70 characters"\ },\ {\ "name": "last\_name",\ "regex": "^.{1,68}$",\ "is\_required": false,\ "type": "string",\ "description": "Official last name of the bank account holder. First name and last name together should not exceed 70 characters"\ },\ {\ "name": "address",\ "regex": "^.{1,35}$",\ "is\_required": true,\ "type": "string",\ "description": "Beneficiary street name ; building number"\ },\ {\ "name": "city",\ "regex": "^.{1,25}$",\ "is\_required": true,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "state",\ "regex": "^.{1,15}$",\ "is\_required": false,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "country",\ "regex": "^\[A-Z\]{2}$",\ "is\_required": true,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "postcode",\ "regex": "^.{1,10}$",\ "is\_required": false,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "account\_number",\ "regex": "^.{1,34}$",\ "is\_required": true,\ "type": "string"\ },\ {\ "name": "bic\_swift",\ "regex": "^(.{8}|.{11})$",\ "is\_required": true,\ "type": "string"\ }\ \],\ "sender\_required\_fields": \[\ {\ "name": "company\_name",\ "regex": "^.{1,35}$",\ "is\_required": true,\ "type": "string"\ },\ {\ "name": "address",\ "regex": "^.{1,35}$",\ "is\_required": true,\ "type": "string",\ "description": "street name ; building number"\ },\ {\ "name": "city",\ "regex": "^.{1,25}$",\ "is\_required": true,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "state",\ "regex": "^.{1,15}$",\ "is\_required": false,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "country",\ "regex": "^\[A-Z\]{2}$",\ "is\_required": true,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "postcode",\ "regex": "^.{1,10}$",\ "is\_required": false,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "purpose\_code",\ "regex": "^(investment\_income|salary|insurance\_payments|computer\_services|educational\_services|payment\_of\_goods|payment\_of\_services|Inward\_remittance)$",\ "is\_required": false,\ "type": "string",\ "allowed\_values": \[\ "investment\_income",\ "salary",\ "insurance\_payments",\ "computer\_services",\ "educational\_services",\ "payment\_of\_goods",\ "payment\_of\_services",\ "Inward\_remittance"\ \],\ "description": "Required only for sending to - China, India, South Korea, Philippines, Malaysia"\ }\ \],\ "payout\_options": \[\ {\ "name": "statement\_descriptor",\ "regex": "\[-a-zA-Z0-9?:().,'+ /\]{1,35}",\ "is\_required": true,\ "type": "string",\ "description": "Unstructured remittance information"\ }\ \],\ "minimum\_amount": null,\ "maximum\_amount": null,\ "batch\_file\_header": "payout\_method\_type,sender\_currency,payout\_currency,beneficiary.first\_name,beneficiary.last\_name,beneficiary.address,beneficiary.city,beneficiary.state,beneficiary.country,beneficiary.postcode,beneficiary.account\_number,beneficiary.bic\_swift,sender.company\_name,sender.address,sender.city,sender.state,sender.country,sender.postcode,sender.purpose\_code"\ }\ }\ \ \ \ \ The `data` section of this response shows required fields for **gb\_local\_bank**.\ \ You will use the required fields for the 'beneficiary' and 'sender' objects when you ask Rapyd to process the payout:\ \ | | |\ | --- | --- |\ | Beneficiary | Sender |\ | `first_name` | `company_name` |\ | `address` | `address` |\ | `city` | `city` |\ | `country` | `country` |\ | `account_number` | |\ | `bic_swift` | |\ \ ### Tip\ \ Use [Validate Beneficiary](validate-beneficiary.html "Validate Beneficiary")\ to check the beneficiary fields before you request the payout. See [Validating Beneficiary Details](validating-beneficiary-details.html "Validating Beneficiary Details")\ .\ \ [###### Requesting a Payout](#idp235467_body)\ \ In this example, Four Star Rideshare Service is the sender of the payout and the employee is the beneficiary who receives the payout.\ \ When your payroll manager requests a payout from the company's eWallet to an employee's bank account, you ask Rapyd to process the payout.\ \ For that, you'll use [Create Payout](create-payout.html "Create Payout")\ with the following parameters:\ \ Description of Body Parameters\ \ | | |\ | --- | --- |\ | Body Parameter | Description |\ | beneficiary | Enter a 'beneficiary' object that has the following fields:

* `first_name` - Enter **Henry**

* `last_name` - Enter **Tan**

* `account_number` - Enter **77711020345678** |\ | beneficiary\_country | Enter **GB** as the code for the United Kingdom, the beneficiary's country. |\ | beneficiary\_entity\_type | Enter **individual** as the type of entity for the beneficiary. |\ | description | Enter **Salary payout via bank** as the description of the payout transaction. |\ | ewallet | Enter the wallet 'id' that you received when you created the company wallet in your sandbox. For purposes of this use case lesson, we are using **ewallet\_3d03be4b6ed60a217fb1faa7c01ae2ca**, which is the company wallet ID we created in our sandbox. |\ | payout\_amount | Enter **3000** as the amount received by the beneficiary. |\ | payout\_currency | Enter **GBP** as the code for British Pounds, the currency received by the beneficiary. |\ | payout\_method\_type | Enter **gb\_local\_bank** as the payout method type. |\ | sender | Enter a 'sender' object that has the following fields:

* `company_name` - Enter **Four Star Rideshare Service**

* `purpose_code` - Enter **salary** |\ | sender\_currency | Enter **GBP** as the code for British Pounds, the sender's currency. |\ | sender\_entity\_type | Enter **company** as the type of entity for the sender. |\ | sender\_country | Enter **GB** as the code for the United Kingdom, the sender's country. |\ \ ### Payouts for Extended Beneficiaries\ \ Creating an extended beneficiary allows a merchant to collect additional information about their beneficiary before creating a payout. A beneficiary token ID is created, and is then passed in the [Create Payout](create-payout.html "Create Payout")\ request.\ \ For example, you could use an extended beneficiary for a payout if you are:\ \ * Making disbursements to independent content creators\ \ * Creating payouts for entertainment-based business platforms\ \ * Making a local payout to a supplier\ \ \ See [Create Extended Beneficiary](create-extended-beneficiary.html "Create Extended Beneficiary")\ for more information.\ \ ###### Create Payout Request\ \ You ask Rapyd to process the manager's payout of 3,000 GBP (British Pounds) to the employee's GB bank account.\ \ * * Request\ \ * // Request URL: POST https://sandboxapi.rapyd.net/v1/payouts\ \ // Message body: \ {\ "beneficiary": {\ "payment\_type": "regular",\ "address": "45 Albert Road",\ "city": "Anytown",\ "country": "GB",\ "first\_name": "Henry",\ "last\_name": "Tan",\ "state": null,\ "postcode": "10101",\ "sort\_code": "123456",\ "account\_number": "77711020345678"\ \ },\ "beneficiary\_country": "GB",\ "beneficiary\_entity\_type": "individual",\ "description": "des c15622888",\ "payout\_method\_type": "gb\_local\_bank",\ "ewallet": "ewallet\_3d03be4b6ed60a217fb1faa7c01ae2ca",\ "metadata": {\ "merchant\_defined": true\ },\ "payout\_amount": "3000",\ "payout\_currency": "GBP",\ \ "sender": {\ "first\_name": "John",\ "last\_name": "Doe",\ "identification\_type": "work\_permit",\ "identification\_value": "asdasd123123",\ "phone\_number": "19019019011",\ "occupation": "plumber",\ "source\_of\_income": "business",\ "date\_of\_birth": "11/12/1913",\ "address": "1 Main Street",\ "purpose\_code": "investment\_income",\ "beneficiary\_relationship": "spouse",\ "city":"London",\ "state":null,\ "postcode":"1234"\ },\ "statement\_descriptor":"GHY\* Limited Access 800-123-4567",\ "sender\_country": "GB",\ "sender\_currency": "GBP",\ "sender\_entity\_type": "individual"\ }\ \ \ \ \ ###### Create Payout Response\ \ Let's take a look at the response.\ \ * * Response\ \ * {\ "status": {\ "error\_code": "",\ "status": "SUCCESS",\ "message": "",\ "response\_code": "",\ "operation\_id": "0916d8d3-35e3-45f3-a56a-e3cc93262a38"\ },\ "data": {\ "id": "payout\_92597636be2bcf8bb974e644db857ce3",\ "payout\_type": "bank",\ "payout\_method\_type": "gb\_local\_bank",\ "amount": 3000,\ "payout\_currency": "GBP",\ "sender\_amount": 3000,\ "sender\_currency": "GBP",\ "status": "Created",\ "sender\_country": "GB",\ "sender": {\ "id": "sender\_7d56509da5660fbd0366cf231f4a90fe",\ "last\_name": "Doe",\ "first\_name": "John",\ "country": "GB",\ "entity\_type": "individual",\ "address": "1 Main Street",\ "name": "John Doe",\ "date\_of\_birth": "11/12/1913",\ "postcode": "1234",\ "city": "London",\ "phone\_number": "19019019011",\ "currency": "GBP",\ "identification\_type": "work\_permit",\ "identification\_value": "asdasd123123",\ "purpose\_code": "investment\_income",\ "beneficiary\_relationship": "spouse",\ "source\_of\_income": "business",\ "occupation": "plumber"\ },\ "beneficiary\_country": "GB",\ "beneficiary": {\ "id": "beneficiary\_00fe9e62f04fd5f6cb3a248afb819e7e",\ "last\_name": "Tan",\ "first\_name": "Henry",\ "country": "GB",\ "entity\_type": "individual",\ "address": "45 Albert Road",\ "name": "Henry Tan",\ "postcode": "10101",\ "city": "Anytown",\ "account\_number": "77711020345678",\ "currency": "GBP",\ "sort\_code": "123456",\ "payment\_type": "regular"\ },\ "fx\_rate": 1,\ "instructions": \[\ {\ "name": "instructions",\ "steps": \[\ {\ "step1": "The funds will be transferred to the provided account details of the beneficiary."\ }\ \]\ }\ \],\ "ewallets": \[\ {\ "ewallet\_id": "ewallet\_3d03be4b6ed60a217fb1faa7c01ae2ca",\ "amount": 3000,\ "percent": 100\ }\ \],\ "metadata": {\ "merchant\_defined": true\ },\ "description": "des c15622888",\ "created\_at": 1697240038,\ "payout\_fees": null,\ "expiration": null,\ "paid\_at": null,\ "identifier\_type": null,\ "identifier\_value": null,\ "error": null,\ "paid\_amount": 0,\ "statement\_descriptor": "GHY\* Limited Access 800-123-4567",\ "gc\_error\_code": null,\ "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method"\ }\ }\ \ \ \ \ \ Besides parameter values that you entered in the request, the `data` section of this response shows:\ \ * The `id` of the 'payout' object is **payout\_92597636be2bcf8bb974e644db857ce3**. Webhooks that relate to this payout refer to this ID.\ \ * The `payout_type` is **bank**.\ \ * Under `sender`:\ \ * The `id` is **sender\_7d56509da5660fbd0366cf231f4a90fe** .\ \ * Fields of the 'sender' object are listed.\ \ \ * Under `beneficiary`:\ \ * The `id` is **beneficiary\_00fe9e62f04fd5f6cb3a248afb819e7e** .\ \ * Fields of the 'beneficiary' object are listed.\ \ \ * The `status` is **Created**. This means that the 'payout' object was created successfully and the employee did not yet receive the payout funds.\ \ \ [###### Closing the Transaction](#idp235647_body)\ \ ### Simulating Payout Completion\ \ The sandbox does not directly simulate the action of the beneficiary receiving the payout funds. You can simulate this action with the procedure described in [Complete Payout](complete-payout.html "Complete Payout")\ . For this, you will need the payout ID and payout amount that you generated in your sandbox.\ \ When a payout completion is simulated, Rapyd sends a webhook. Configure your system to receive webhooks with the procedure described in [Defining a Webhook Endpoint](defining-a-webhook-endpoint.html "Defining a Webhook Endpoint")\ \ After you simulate that the employee's bank has accepted the transfer, Rapyd sends you [Webhook - Payout Completed](payout-completed-webhook.html "Payout Completed Webhook")\ . The webhook confirms that the payout was completed.\ \ ### Looking for More In-Depth Technical Information?\ \ Want to see the Rapyd API methods and objects that you'll use? Visit the [API Reference](api-reference.html "API Reference")\ for more technical details.\ \ In this section:\ \ Commerce between business entities.\ \ In Rapyd, the sandbox environment provides most of the functionality of the production environment, without using real money. Interested persons can use the sandbox to explore Rapyd's product offering or to test software integrations with Rapyd's API.\ \ A person or business that receives funds from a [disburse](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_disburse)\ (payout) transaction.\ \ Search results\ --------------\ \ No results found\ \ * [Prev](bank-account-payout.html#idp235123)\ \ * [Next](local-bank-payout.html#idp235153) --- # Plan [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * Plan * [Prev](product-errors.html) * [Next](create-plan.html) ##### Plan Pricing structure for a single product of type **service**. A product can have multiple plans, for example, one plan for regular customers, and a special promotional plan for new customers that sign up in December. **Prerequisite:** A product of type **service**. See [Create Product](create-product.html "Create Product") . A plan is required for the following methods: * [Create Subscription](create-subscription.html "Create Subscription") * [Create Subscription Item](create-subscription-item.html "Create Subscription Item") Methods * [Create Plan](create-plan.html "Create Plan") * [Update Plan](update-plan.html "Update Plan") * [List Plans](list-plans.html "List Plans") * [Retrieve Plan](retrieve-plan.html "Retrieve Plan") * [Delete Plan](delete-plan.html "Delete Plan") Webhooks * **Plan Created** webhook * **Plan Deleted** webhook * **Plan Updated** webhook Errors * [Plan Errors](plan-errors.html "Plan Errors") In this section: Search results -------------- No results found * [Prev](product-errors.html) * [Next](create-plan.html) --- # Bank Payout Bulgaria [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payout Method Types](payout-method-types.html) * [EMEA](emea-401604.html) * Bank Payout Bulgaria * [Prev](emea-401604.html#idp240959) * [Next](bank-payout-bulgaria.html#idp240988) ##### Bank Payout Bulgaria Disburse funds directly to a bank account. | `Enterprise` **bg\_ach\_bank** is a new local bank payout method type used for payouts in Bulgaria. A sender can disburse funds into a beneficiary’s bank account in Bulgaria. This payout method supports several banks in the region and allows the beneficiary to be paid in the country's local currency. The benefits for the user include the ability to create payouts through local bank transfers and disburse funds into Bulgarian bank accounts. [###### Finding Required Fields for the Payout Method Type](#idp240988_body) You need to find the required fields for each payout method type. For that, you'll use [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields") . Enter **bg\_ach\_bank** as the value for the `payout_method_type` path parameter. [###### Requesting a Payout](#idp240995_body) Use [Create Payout](create-payout.html "Create Payout") with the following parameters: Create Payout Request Parameters | | | | --- | --- | | **Body Parameter** | **Description** | | ewallet | Enter the wallet 'id' that you received when you created the company wallet in your sandbox. | | payout\_amount | Enter 100 as the amount received by the beneficiary. | | payout\_method\_type | Enter **bg\_ach\_bank** as the payout method type. | | sender\_currency | Enter **USD** as the code for United States Dollar, the sender's currency. | | sender\_country | Enter **US** as the code for the United States, the sender's country. | | beneficiary\_country | Enter **BG** as the code for Bulgaria, the beneficiary's country. | | payout\_currency | Enter **BGN** as the code for Bulgarian Lev, the currency received by the beneficiary. | | sender\_entity\_type | Enter ‘individual’ as the type of entity for the sender. | | beneficiary\_entity\_type | Enter ‘individual’ as the type of entity for the beneficiary. | | beneficiary | Enter a `beneficiary object` that has the following fields:

* **company\_name** - company

* **first\_name** - individual

* **last\_name** - individual

* **iban** - individual or company

* **bic\_swift** - individual or company

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | sender | Enter a `sender` object that has the following fields:

* **company\_name** - company

* **country\_of\_incorporation** - company

* **date\_of\_incorporation** - company

* **identification\_value** - company

* **first\_name** - individual

* **last\_name** - individual

* **nationality** - individual

* **date\_of\_birth** - individual

* **identification\_value** - individual

* **identification\_type** - individual

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company

* **source\_of\_funds** - individual or company | | description | Enter ‘salary payout - wallet to bank account’ as the description of the payout transaction. | | payout\_options | Enter a `payout_options` object with the following fields:

* **statement\_descriptor** | [###### Create Payout Response](#idp241169_body) [Create Payout](create-payout.html "Create Payout") describes the fields in the response. [###### Local Bank Payout Bulgaria Details](#idp241173_body) | | | | --- | --- | | **Details** | **Description** | | Payout Method Category | bank | | Payout Request String | POMT = bg\_ach\_bank | | Country | Bulgaria | | Sender Currency | USD, ISK, GBP, EUR, SGD, HKD, AUD | | Transaction Limits | N/A | | Settlement Timeframe | 2 - 3 days | In this section: Search results -------------- No results found * [Prev](emea-401604.html#idp240959) * [Next](bank-payout-bulgaria.html#idp240988) --- # Update Plan [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Plan](plan.html) * Update Plan * [Prev](create-plan.html) * [Next](list-plans.html) ###### Update Plan Change or modify a pricing plan for services. You can update a plan’s `nickname` or `metadata`. This method triggers the **Plan Updated** webhook. This webhook contains the same information as the response. [###### Parameters](#idp300843_body) [###### Request Path Parameters](#idp300845_body) * * plan * ID of the plan. [###### Request Header Parameters](#idp300854_body) [###### Request Body Parameters](#idp300914_body) * * active * Indicates whether the plan is available for a subscription. Can be **true** when the product associated with this plan is active. * * nickname * Brief description of the plan. [###### Response Parameters](#idp300938_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string plan = "plan\_51788cf4ed1b672cb0a2a97773887f5b"; var metadata = new { merchant\_defined = "updated" }; var requestObj = new { metadata, nickname = "Basic parking" }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", $"/v1/plans/{plan}", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { nickname: 'main plan' }; const result = await makeRequest( 'POST', '/v1/plans/plan\_51788cf4ed1b672cb0a2a97773887f5b', body ); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ "nickname" => "Basic parking"\ \]; try { $object = make\_request('post', '/v1/plans/plan\_51788cf4ed1b672cb0a2a97773887f5b', $body); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request plan\_data = { "metadata": { "merchant\_defined": "updated" }, "nickname": "Basic parking" } result = make\_request(method='post', path='/v1/plans/plan\_51788cf4ed1b672cb0a2a97773887f5b', body=plan\_data) pprint(result) * /v1/plans/:plan * Update Plan * curl -X post https://sandboxapi.rapyd.net/v1/plans/plan\_51788cf4ed1b672cb0a2a97773887f5b -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "metadata": { "merchant\_defined": "updated" }, "nickname": "Basic parking" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "f219f271-d957-4739-93a5-1d9385104c87" }, "data": { "id": "plan\_51788cf4ed1b672cb0a2a97773887f5b", "aggregate\_usage": "sum", "amount": 0, "billing\_scheme": "tiered", "created\_at": 1592311574, "currency": "USD", "interval": "month", "interval\_count": 1, "metadata": { "merchant\_defined": true }, "product": { "id": "product\_ab9599d248f6d4d4311148aea68e20d0", "active": true, "attributes": \[\ "location",\ "size"\ \], "created\_at": 1592299027, "description": "Monthly parking - covered area, compact car", "images": \[\ "64bit-encoded-image-1",\ "64bit-encoded-image-2"\ \], "metadata": { "merchant\_defined": true }, "name": "Monthly parking", "package\_dimensions": { "height": 0, "length": 0, "weight": 0, "width": 0 }, "shippable": false, "skus": \[\], "statement\_descriptor": "", "type": "services", "unit\_label": "", "updated\_at": 1592299027 }, "nickname": "Basic parking", "tiers": \[\ {\ "amount": 15,\ "up\_to": "inf",\ "flat\_amount": 0\ }\ \], "tiers\_mode": "volume", "transform\_usage": { "divide\_by": 0, "round": "" }, "trial\_period\_days": 0, "usage\_type": "licensed" } } * Activate Plan * curl -X post https://sandboxapi.rapyd.net/v1/plans/plan\_889a7dc707b2ca13a815b008bec61a7d -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "active": true } ' * { { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "47f18710-7bb3-4d3c-9910-c0950d20f1cf" }, "data": { "id": "plan\_889a7dc707b2ca13a815b008bec61a7d", "aggregate\_usage": "sum", "amount": 5, "billing\_scheme": "per\_unit", "created\_at": 1616315917, "currency": "USD", "interval": "day", "interval\_count": 1, "metadata": {}, "product": { "id": "product\_903650fb06b7099413db8019c1646d4b", "active": true, "attributes": \[\], "created\_at": 1616315223, "description": "", "images": \[\], "metadata": {}, "name": "Acme music stream", "package\_dimensions": { "height": 0, "length": 0, "weight": 0, "width": 0 }, "shippable": false, "skus": \[\], "statement\_descriptor": "", "type": "services", "unit\_label": "", "updated\_at": 1616315223 }, "nickname": "Basic", "tiers": \[\], "tiers\_mode": "", "transform\_usage": { "divide\_by": 1, "round": "up" }, "trial\_period\_days": 0, "usage\_type": "licensed", "active": true } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](create-plan.html) * [Next](list-plans.html) --- # Bank Payout United Arab Emirates [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payout Method Types](payout-method-types.html) * [EMEA](emea-401604.html) * Bank Payout United Arab Emirates * [Prev](bank-payout-united-kingdom.html#idp241602) * [Next](bank-payout-united-arab-emirates.html#idp241654) ##### Bank Payout United Arab Emirates Disburse funds directly to a bank account. | `Enterprise` **ae\_ach\_bank** is a new local bank payout method type used for payouts in the United Arab Emirates. A sender can disburse funds into a beneficiary’s bank account in the United Arab Emirates. This payout method supports several banks in the region and allows the beneficiary to be paid in the country's local currency. The benefits for the user include the ability to create payouts through local bank transfers and disburse funds into UAE bank accounts. [###### Finding Required Fields for the Payout Method Type](#idp241654_body) You need to find the required fields for each payout method type. For that, you'll use [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields") . Enter **ae\_ach\_bank** as the value for the `payout_method_type` path parameter. [###### Requesting a Payout](#idp241661_body) Use [Create Payout](create-payout.html "Create Payout") with the following parameters: Create Payout Request Parameters | | | | --- | --- | | **Body Parameter** | **Description** | | ewallet | Enter the wallet 'id' that you received when you created the company wallet in your sandbox. | | payout\_amount | Enter 100 as the amount received by the beneficiary. | | payout\_method\_type | Enter **ae\_ach\_bank** as the payout method type. | | sender\_currency | Enter **USD** as the code for United States Dollar, the sender's currency. | | sender\_country | Enter **US** as the code for the United States, the sender's country. | | beneficiary\_country | Enter **AE** as the code for the United Arab Emirates, the beneficiary's country. | | payout\_currency | Enter **AED** as the code for the UAE Dirham, the currency received by the beneficiary. | | sender\_entity\_type | Enter ‘individual’ as the type of entity for the sender. | | beneficiary\_entity\_type | Enter ‘individual’ as the type of entity for the beneficiary. | | beneficiary | Enter a `beneficiary object` that has the following fields:

* **company\_name** - company

* **first\_name** - individual

* **last\_name** - individual

* **iban** - individual or company

* **bic\_swift** - individual or company

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | sender | Enter a `sender` object that has the following fields:

* **company\_name** - company

* **country\_of\_incorporation** - company

* **date\_of\_incorporation** - company

* **identification\_value** - company

* **first\_name** - individual

* **last\_name** - individual

* **nationality** - individual

* **date\_of\_birth** - individual

* **identification\_value** - individual

* **identification\_type** - individual

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | description | Enter ‘salary payout - wallet to bank account’ as the description of the payout transaction. | | payout\_options | Enter a `payout_options` object with the following fields:

* **statement\_descriptor** | [###### Create Payout Response](#idp241832_body) [Create Payout](create-payout.html "Create Payout") describes the fields in the response. [###### Local Bank Payout United Arab Emirates Details](#idp241836_body) | | | | --- | --- | | **Details** | **Description** | | Payout Method Category | bank | | Payout Request String | POMT = ae\_ach\_bank | | Country | United Arab Emirates | | Sender Currency | USD, ISK, GBP, EUR, SGD, HKD, AUD | | Transaction Limits | N/A | | Settlement Timeframe | 3 days | In this section: Search results -------------- No results found * [Prev](bank-payout-united-kingdom.html#idp241602) * [Next](bank-payout-united-arab-emirates.html#idp241654) --- # Idempotency [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Developer Resources](developer-resources.html) * [Information Security](information-security.html) * Idempotency * [Prev](rest-message-security.html) * [Next](request-rate-limits.html) ##### Idempotency Protection against duplicate financial operations. Rapyd provides an optional idempotency check for API requests. To activate the check, include the `idempotency` parameter in the header of the request. If the `idempotency` header value is the same in another request in the next 24 hours, the second request is determined to be idempotent and the response to the first request is returned again. By default, the client configuration enables the idempotency check for [Create Payment](create-payment.html "Create Payment") requests only. This check considers the value of the `idempotency` header and the value of the `amount` parameter in the body of the request. See Idempotency Check for Create Payment, below. On request, **Rapyd Client Support** will change your client configuration to allow idempotency checks on all POST and PUT requests. With this configuration, the idempotency check evaluates only the `idempotency` header, even in 'Create Payment' requests. Idempotency Check for Create Payment When your client configuration enables the idempotency check for 'Create Payment' only, the value of the `amount` field is relevant. ### Note The idempotency check does not examine the value of the `currency` field, so requests for 24.00 euros and 24.00 dollars are idempotent if they use the same `idempotency` header value. Example #1 - Not idempotent The following example illustrates two requests that use the same `idempotency` header value. They are not idempotent because they have different values for `amount`. In the responses, you can see that the `id` field is different. * * Request #1 * curl --location --request POST 'https://sandboxapi.rapyd.net/v1/payments' \\ --header 'Content-Type: application/json' \\ --header 'access\_key: 48873' \\ --header 'salt: 90ec80e9' \\ --header 'timestamp: 1565511756' \\ --header 'signature: ZTFjZmUmZTw==' \\ --header 'idempotency: 123' \\ --data-raw { "amount": 100, "currency": "USD", "payment\_method": { "type": "us\_mastercard\_card", "fields": { "number": "4111111111111111", "expiration\_month": "12", "expiration\_year": "23", "name": "John Doe", "cvv": "345" }, "metadata": { "merchant\_defined": true } } } * * Response #1 * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "19072d56-7834-447a-9260-7c8c8da62b06" }, "data": { "id": "payment\_ab30fc5ed6578b415ca7ba004b34d463", "amount": 100, "original\_amount": 100, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": "CLO", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_1a4df69a959e184fd50884644f46cd73", "payment\_method": "card\_1ccfdb70c1b34d68ea2c09a15df1310c", "expiration": "0", "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "", "transaction\_id": "", "created\_at": "1565511756", "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1565511756, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\], "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": "us\_mastercard\_card", "payment\_method\_type\_category": "card", "fx\_rate": 0, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "payment\_fees": null, "invoice": "", "escrow": null } } * * Non-idempotent request #2 * curl --location --request POST 'https://sandboxapi.rapyd.net/v1/payments' \\ --header 'Content-Type: application/json' \\ --header 'access\_key: 48873' \\ --header 'salt: 90ec80e9' \\ --header 'timestamp: 1565511799' \\ --header 'signature: ZTFjZmUmZTw==' \\ --header 'idempotency: 123' \\ --data-raw { "amount": 25, "currency": "USD", "payment\_method": { "type": "us\_mastercard\_card", "fields": { "number": "4111111111111111", "expiration\_month": "12", "expiration\_year": "23", "name": "John Doe", "cvv": "345" }, "metadata": { "merchant\_defined": true } } } * * Response #2 * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "68dd5bba-3358-408c-9207-5dc73935ab6d" }, "data": { "id": "payment\_3badcd504599a0630cc4fe87cde8dfb5", "amount": 25, "original\_amount": 25, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": "CLO", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_ed007e7d1d9d2f773f89c175f6b05bfa", "payment\_method": "card\_f23c1c0bcfd1019ee4e60e2a7f431420", "expiration": "0", "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "", "transaction\_id": "", "created\_at": "1565511799", "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1565511799, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\], "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": "us\_mastercard\_card", "payment\_method\_type\_category": "card", "fx\_rate": 0, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "payment\_fees": null, "invoice": "", "escrow": null } } Example #2 - Idempotent The following example illustrates two idempotent requests. They use the same `idempotency` header value. Note the value of the `amount` field. In the responses, you can see that the `id` field is the same. * * Request #1 * curl --location --request POST 'https://sandboxapi.rapyd.net/v1/payments' \\ --header 'Content-Type: application/json' \\ --header 'access\_key: 48873' \\ --header 'salt: 90ec80e9' \\ --header 'timestamp: 1565511846' \\ --header 'signature: ZTFjZmUmZTw==' \\ --header 'idempotency: 1234' \\ --data-raw { "amount": 57, "currency": "USD", "payment\_method": { "type": "us\_mastercard\_card", "fields": { "number": "4111111111111111", "expiration\_month": "12", "expiration\_year": "23", "name": "John Doe", "cvv": "345" }, "metadata": { "merchant\_defined": true } } } * * Response #1 * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "8b354b86-db72-4784-af3b-6421b89e1d12" }, "data": { "id": "payment\_ca36b3dc4d55d46310c9e7763e12d3e2", "amount": 57, "original\_amount": 57, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": "CLO", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_21bc82061221f9f797989a977baeae67", "payment\_method": "card\_9b04b0bb4a395ef84ffcf796972320d2", "expiration": "0", "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "", "transaction\_id": "", "created\_at": "1565511846", "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1565511847, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\], "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": "us\_mastercard\_card", "payment\_method\_type\_category": "card", "fx\_rate": 0, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "payment\_fees": null, "invoice": "", "escrow": null } } * * Idempotent request #2 * curl --location --request POST 'https://sandboxapi.rapyd.net/v1/payments' \\ --header 'Content-Type: application/json' \\ --header 'access\_key: 48873' \\ --header 'salt: 90ec80e9' \\ --header 'timestamp: 1565511846' \\ --header 'signature: ZTFjZmUmZTw==' \\ --header 'idempotency: 1234' \\ --data-raw { "amount": 57, "currency": "USD", "payment\_method": { "type": "us\_mastercard\_card", "fields": { "number": "4111111111111111", "expiration\_month": "12", "expiration\_year": "23", "name": "John Doe", "cvv": "345" }, "metadata": { "merchant\_defined": true } } } * * Response #2 * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "8b354b86-db72-4784-af3b-6421b89e1d12" }, "data": { "id": "payment\_ca36b3dc4d55d46310c9e7763e12d3e2", "amount": 57, "original\_amount": 57, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": "CLO", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_21bc82061221f9f797989a977baeae67", "payment\_method": "card\_9b04b0bb4a395ef84ffcf796972320d2", "expiration": "0", "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "", "transaction\_id": "", "created\_at": "1565511846", "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1565511847, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\], "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": "us\_mastercard\_card", "payment\_method\_type\_category": "card", "fx\_rate": 0, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "payment\_fees": null, "invoice": "", "escrow": null } } Note that the response to the idempotent second request is identical to the response to the first request. Example #3 - Idempotent The following example illustrates two idempotent requests. They use the same `idempotency` header value. Note that the values of the `currency` field are different, and the payment method is different. In the responses, you can see that the `id` field is the same. * * Request #1 * curl --location --request POST 'https://sandboxapi.rapyd.net/v1/payments' \\ --header 'Content-Type: application/json' \\ --header 'access\_key: 48873' \\ --header 'salt: 90ec80e9' \\ --header 'timestamp: 1565512168' \\ --header 'signature: ZTFjZmUmZTw==' \\ --header 'idempotency: 12345' \\ --data-raw { "amount": 15.65, "currency": "USD", "payment\_method": { "type": "us\_mastercard\_card", "fields": { "number": "4111111111111111", "expiration\_month": "12", "expiration\_year": "23", "name": "John Doe", "cvv": "345" }, "metadata": { "merchant\_defined": true } } } * * Response #1 * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "0b637672-085a-45d0-9432-2072d7fb4e83" }, "data": { "id": "payment\_11109b0c4a35741609f30e55725de43a", "amount": 15.65, "original\_amount": 15.65, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": "CLO", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_ad6f397fa6635f585471f1d74daaff74", "payment\_method": "card\_6e1f496be2f47dc011f4412eaf1fd36f", "expiration": "0", "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "", "transaction\_id": "", "created\_at": "1565512168", "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1565512168, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\], "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": "us\_mastercard\_card", "payment\_method\_type\_category": "card", "fx\_rate": 0, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "payment\_fees": null, "invoice": "", "escrow": null } } * * Non-identical request #2 * curl --location --request POST 'https://sandboxapi.rapyd.net/v1/payments' \\ --header 'Content-Type: application/json' \\ --header 'access\_key: 48873' \\ --header 'salt: 90ec80e9' \\ --header 'timestamp: 1565512168' \\ --header 'signature: ZTFjZmUmZTw==' \\ --header 'idempotency: 12345' \\ --data-raw { "amount": 15.65, "currency": "MXN", "payment\_method": { "type": "mx\_santander\_bank", "fields": {} }, "metadata": { "merchant\_defined": true } } * * Response #2 * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "0b637672-085a-45d0-9432-2072d7fb4e83" }, "data": { "id": "payment\_11109b0c4a35741609f30e55725de43a", "amount": 15.65, "original\_amount": 15.65, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": "CLO", "description": "", "merchant\_reference\_id": "", "customer\_token": "cus\_ad6f397fa6635f585471f1d74daaff74", "payment\_method": "card\_6e1f496be2f47dc011f4412eaf1fd36f", "expiration": "0", "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "", "transaction\_id": "", "created\_at": "1565512168", "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1565512168, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": \[\], "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": "us\_mastercard\_card", "payment\_method\_type\_category": "card", "fx\_rate": 0, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "payment\_fees": null, "invoice": "", "escrow": null } } ### Note If the intent is to create a different payment with a different currency and a different payment method, you cannot use the same `idempotency` header value when the amount is the same. In this section: Search results -------------- No results found * [Prev](rest-message-security.html) * [Next](request-rate-limits.html) --- # Update Subscription [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription](subscription-364807.html) * Update Subscription * [Prev](create-subscription.html) * [Next](list-subscriptions.html) ###### Update Subscription Modify a subscription. You can redefine the trial period if the status is **active** or **trialing**. If you change `trial_end` to **now**, the trial period ends immediately and `billing_cycle_anchor` is set to the present time. If you define a new trial period and `prorate` is **true**, the charges will be prorated. To change a payment method, set the `payment_method` field to the ID of a payment method belonging to the same customer. This method triggers the [Subscription Updated Webhook](subscription-updated-webhook.html "Subscription Updated Webhook") . This webhook contains the same information as the response. [###### Parameters](#idp303015_body) [###### Request Path Parameters](#idp303017_body) * * subscription * ID of the subscription. String starting with **sub\_**. [###### Request Header Parameters](#idp303027_body) [###### Request Body Parameters](#idp303087_body) [###### Response Parameters](#idp303236_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string subscription = "sub\_4d9bcdf0a768a90e2f39a04ae1331e90"; var requestObj = new { metadata = new { merchant\_defined = "updated" }, tax\_percent = 10 }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", $"/v1/subscriptions/{subscription}"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { trial\_period\_days: 30, coupon: 'coupon\_f0517cffe4792ef3dd77f08a41b80d4e' }; const result = await makeRequest( 'POST', '/v1/payments/subscriptions/sub\_4d9bcdf0a768a90e2f39a04ae1331e90', body ); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $body = \[\ "tax\_percent"=> 10\ \]; $object = make\_request('post', '/v1/subscriptions/sub\_4d9bcdf0a768a90e2f39a04ae1331e90'); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request subscription = { "metadata": { "merchant\_defined": True }, "tax\_percent": 10 } result = make\_request(method='post', path='/v1/subscriptions/sub\_4d9bcdf0a768a90e2f39a04ae1331e90', body=subscription) pprint(result) * /v1/payments/subscriptions/:subscription * Update Subscription - tax percent * curl -X post https://sandboxapi.rapyd.net/v1/payments/subscriptions/sub\_4d9bcdf0a768a90e2f39a04ae1331e90 -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "metadata": { "merchant\_defined": "updated" }, "tax\_percent": 10 } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "8ba15aca-8cfa-416f-9469-a23738444840" }, "data": { "id": "sub\_4d9bcdf0a768a90e2f39a04ae1331e90", "billing": "pay\_automatically", "billing\_cycle\_anchor": 1592379647, "created\_at": 1592379647, "customer\_token": "cus\_ec543c4dfcf6ac1d015b2e3e4fd07180", "days\_until\_due": null, "metadata": {}, "tax\_percent": 10, "cancel\_at\_period\_end": true, "canceled\_at": null, "current\_period\_end": 1594971647, "current\_period\_start": 1592379647, "discount": null, "ended\_at": null, "subscription\_items": { "data": \[\ {\ "id": "subi\_a9f34be0551bf85ffb13e4fdb6107d6d",\ "created": 1592379647,\ "metadata": null,\ "quantity": 1,\ "plan": {\ "id": "plan\_51788cf4ed1b672cb0a2a97773887f5b",\ "aggregate\_usage": "sum",\ "amount": 0,\ "billing\_scheme": "tiered",\ "created\_at": 1592311574,\ "currency": "USD",\ "interval": "month",\ "interval\_count": 1,\ "metadata": {\ "merchant\_defined": true\ },\ "product": {\ "id": "product\_ab9599d248f6d4d4311148aea68e20d0",\ "active": true,\ "attributes": \[\ "location",\ "size"\ \],\ "created\_at": 1592299027,\ "description": "Monthly parking - covered area, compact car",\ "images": \[\ "64bit-encoded-image-1",\ "64bit-encoded-image-2"\ \],\ "metadata": {\ "merchant\_defined": true\ },\ "name": "Monthly parking",\ "package\_dimensions": {\ "height": 0,\ "length": 0,\ "weight": 0,\ "width": 0\ },\ "shippable": false,\ "skus": \[\],\ "statement\_descriptor": "",\ "type": "services",\ "unit\_label": "",\ "updated\_at": 1592299027\ },\ "nickname": "Basic parking",\ "tiers": \[\ {\ "amount": 15,\ "up\_to": "inf",\ "flat\_amount": 0\ }\ \],\ "tiers\_mode": "volume",\ "transform\_usage": {\ "divide\_by": 0,\ "round": ""\ },\ "trial\_period\_days": 0,\ "usage\_type": "licensed"\ }\ }\ \], "has\_more": false, "total\_count": 1, "url": "/v1/subscription\_items?subscription=sub\_4d9bcdf0a768a90e2f39a04ae1331e90" }, "status": "active", "trial\_end": null, "trial\_start": null, "payment\_method": "card\_156da7de485275ad0bae798b7cb8fea1", "payment\_fields": null, "payout\_fields": null, "type": "payment", "simultaneous\_invoice": true } } * Add Discount * curl -X post https://sandboxapi.rapyd.net/v1/payments/subscriptions/sub\_210c3425c928495873104df273ed237a -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "coupon": "coupon\_547e6e4a218fe358c5cf22a5393fef5f", "metadata": { "merchant\_defined": "10% discount added" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "f5cce9cc-44f9-47ce-ae76-5857d3ee6545" }, "data": { "id": "sub\_210c3425c928495873104df273ed237a", "billing": "pay\_automatically", "billing\_cycle\_anchor": 1646899867, "created\_at": 1646899867, "customer\_token": "cus\_c62e8561f1f9217676819dce60accc08", "days\_until\_due": null, "metadata": { "merchant\_defined": "10% discount added" }, "tax\_percent": 0, "cancel\_at\_period\_end": false, "canceled\_at": null, "current\_period\_end": 1649578267, "current\_period\_start": 1646899867, "discount": { "id": "dis\_0464bfadba272ab0d5530ce2d14ffd46", "coupon": { "id": "coupon\_547e6e4a218fe358c5cf22a5393fef5f", "amount\_off": 0, "created": 1646893705, "currency": "", "duration": "forever", "duration\_in\_months": 0, "max\_redemptions": 10, "metadata": {}, "percent\_off": 10, "redeem\_by": 0, "times\_redeemed": 1, "discount\_valid\_until": 0, "discount\_validity\_in\_months": 0, "discount\_duration\_in\_uses": 0, "description": "", "valid": true }, "customer": "", "end": -1, "start": 1646900084, "number\_of\_uses": 0, "valid": true }, "ended\_at": null, "subscription\_items": { "data": \[\ {\ "id": "subi\_6cbdb6ac74bed62b6953b7d9892a8b0c",\ "created": 1646899867,\ "metadata": null,\ "quantity": 1,\ "plan": {\ "id": "plan\_5a99897cdcd7175cb8119254d02befdb",\ "aggregate\_usage": "sum",\ "amount": 3,\ "billing\_scheme": "per\_unit",\ "created\_at": 1646897987,\ "currency": "USD",\ "interval": "month",\ "interval\_count": 1,\ "metadata": {},\ "product": {\ "id": "product\_13ae28f06213a4253b96e6143b598591",\ "active": true,\ "attributes": \[\],\ "created\_at": 1646897609,\ "description": "",\ "images": \[\],\ "metadata": {},\ "name": "Acme music stream",\ "package\_dimensions": {\ "height": 0,\ "length": 0,\ "weight": 0,\ "width": 0\ },\ "shippable": false,\ "skus": \[\],\ "statement\_descriptor": "",\ "type": "services",\ "unit\_label": "",\ "updated\_at": 1646897609\ },\ "nickname": "Basic",\ "tiers": \[\],\ "tiers\_mode": "",\ "transform\_usage": {\ "divide\_by": 1,\ "round": "up"\ },\ "trial\_period\_days": 0,\ "usage\_type": "licensed"\ }\ }\ \], "has\_more": false, "total\_count": 1, "url": "/v1/subscription\_items?subscription=sub\_210c3425c928495873104df273ed237a" }, "status": "unpaid", "trial\_end": null, "trial\_start": null, "payment\_method": "card\_156da7de485275ad0bae798b7cb8fea1", "payment\_fields": null, "payout\_fields": null, "type": "payment", "simultaneous\_invoice": true } } * Change payment method * curl -X post https://sandboxapi.rapyd.net/v1/payments/subscriptions/sub\_499f7792b08a5c06ff35ba6279092a9a -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "payment\_method": "card\_156da7de485275ad0bae798b7cb8fea1" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "44929fc2-c61d-44d2-b9b0-7316182b1a8a" }, "data": { "id": "sub\_499f7792b08a5c06ff35ba6279092a9a", "billing": "pay\_automatically", "billing\_cycle\_anchor": 1651414755, "created\_at": 1651414755, "customer\_token": "cus\_60cb18f281b7472a076c5834c552d12b", "days\_until\_due": 30, "metadata": {}, "tax\_percent": 0, "cancel\_at\_period\_end": false, "canceled\_at": null, "current\_period\_end": 1654438755, "current\_period\_start": 1651414755, "discount": null, "ended\_at": null, "subscription\_items": { "data": \[\ {\ "id": "subi\_1b8641d7ca97fdb12b5dc3fbcacc5ff8",\ "created": 1651414755,\ "metadata": null,\ "quantity": 1,\ "plan": {\ "id": "plan\_def67ab781c1f0968d13582c4eba3532",\ "aggregate\_usage": "sum",\ "amount": 100,\ "billing\_scheme": "per\_unit",\ "created\_at": 1651414740,\ "currency": "MXN",\ "interval": "day",\ "interval\_count": 35,\ "metadata": {},\ "product": {\ "id": "product\_53060a42eb2d702c6d3e926434d63cd3",\ "active": true,\ "attributes": \[\ "location",\ "size"\ \],\ "created\_at": 1651414721,\ "description": "Monthly parking - covered area, compact car",\ "images": \[\ "64bit-encoded-image-1",\ "64bit-encoded-image-2"\ \],\ "metadata": {},\ "name": "Monthly parking",\ "package\_dimensions": {\ "height": 0,\ "length": 0,\ "weight": 0,\ "width": 0\ },\ "shippable": false,\ "skus": \[\],\ "statement\_descriptor": "ffff",\ "type": "services",\ "unit\_label": "",\ "updated\_at": 1651414721\ },\ "nickname": "Parking - silver",\ "tiers": \[\],\ "tiers\_mode": "",\ "transform\_usage": {\ "divide\_by": 1000,\ "round": "up"\ },\ "trial\_period\_days": 7,\ "usage\_type": "licensed"\ }\ }\ \], "has\_more": false, "total\_count": 1, "url": "/v1/subscription\_items?subscription=sub\_499f7792b08a5c06ff35ba6279092a9a" }, "status": "active", "trial\_end": null, "trial\_start": null, "payment\_method": "card\_156da7de485275ad0bae798b7cb8fea1", "payment\_fields": null, "payout\_fields": null, "type": "payment", "simultaneous\_invoice": true } } * Update Subscription Billing Cycle Anchor - testing only * curl -X post https://sandboxapi.rapyd.net/v1/payments/subscriptions/sub\_17b55f5ccfe97f80fe73a7acc0545386 -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "billing\_cycle\_anchor": "now", "days\_until\_due": 0 } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "f3d596ad-0d48-45e5-87a2-e5e0a6fa57ba" }, "data": { "id": "sub\_17b55f5ccfe97f80fe73a7acc0545386", "billing": "pay\_automatically", "billing\_cycle\_anchor": 1673500131, "created\_at": 1673499338, "customer\_token": "cus\_5bee14584a78638ba717e746be62ee01", "days\_until\_due": null, "metadata": {}, "tax\_percent": 0, "cancel\_at\_period\_end": false, "canceled\_at": null, "current\_period\_end": 1674104931, "current\_period\_start": 1673500131, "discount": null, "ended\_at": null, "subscription\_items": { "data": \[\ {\ "id": "subi\_a6f17fb61f9cad3c86327dd71dfaeb0c",\ "created": 1673499338,\ "metadata": {\ "merchant\_defined": true\ },\ "quantity": 25,\ "plan": {\ "id": "plan\_d2b079cfbe29fc802baf215aa64bb1fa",\ "aggregate\_usage": "sum",\ "amount": 0,\ "billing\_scheme": "tiered",\ "created\_at": 1673499122,\ "currency": "USD",\ "interval": "month",\ "interval\_count": 1,\ "metadata": {},\ "product": {\ "id": "product\_fa1b30b1caa6711910f60e758dbe70c6",\ "active": true,\ "attributes": \[\ "quantity"\ \],\ "created\_at": 1673498178,\ "description": "Public Transportation Usage",\ "images": \[\ "64bit-encoded-image-1"\ \],\ "metadata": {\ "merchant\_defined": true\ },\ "name": "Transit Rides",\ "package\_dimensions": {\ "height": 0,\ "length": 0,\ "weight": 0,\ "width": 0\ },\ "shippable": false,\ "skus": \[\],\ "statement\_descriptor": "Transit Usage",\ "type": "services",\ "unit\_label": "rides",\ "updated\_at": 1673498178\ },\ "nickname": "Transit Use",\ "tiers": \[\ {\ "amount": 4,\ "up\_to": 5,\ "flat\_amount": 1\ },\ {\ "amount": 3,\ "up\_to": 10,\ "flat\_amount": 0\ },\ {\ "amount": 2,\ "up\_to": 20,\ "flat\_amount": 0\ },\ {\ "amount": 1,\ "up\_to": "inf",\ "flat\_amount": 0\ }\ \],\ "tiers\_mode": "graduated",\ "transform\_usage": {\ "divide\_by": 1,\ "round": "up"\ },\ "trial\_period\_days": 0,\ "usage\_type": "licensed"\ }\ }\ \], "has\_more": false, "total\_count": 0, "url": "/v1/subscription\_items?subscription=sub\_17b55f5ccfe97f80fe73a7acc0545386" }, "status": "active", "trial\_end": null, "trial\_start": null, "payment\_method": "card\_794ddbfd19fcc548c8399ca957f11a24", "payment\_fields": null, "payout\_fields": null, "type": "payment", "simultaneous\_invoice": false } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](create-subscription.html) * [Next](list-subscriptions.html) --- # Bank Payout Poland [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payout Method Types](payout-method-types.html) * [EMEA](emea-401604.html) * Bank Payout Poland * [Prev](bank-payout-united-arab-emirates.html#idp241836) * [Next](bank-payout-poland.html#idp241887) ##### Bank Payout Poland Disburse funds directly to a bank account. | `Enterprise` **pl\_ach\_bank** is a new local bank payout method type used for payouts in Poland. A sender can disburse funds into a beneficiary’s bank account in Poland. This payout method supports several banks in the region and allows the beneficiary to be paid in the country's local currency. The benefits for the user include the ability to create payouts through local bank transfers and disburse funds into Polish bank accounts. [###### Finding Required Fields for the Payout Method Type](#idp241887_body) You need to find the required fields for each payout method type. For that, you'll use [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields") . Enter **pl\_ach\_bank** as the value for the `payout_method_type` path parameter. [###### Requesting a Payout](#idp241894_body) Use [Create Payout](create-payout.html "Create Payout") with the following parameters: Create Payout Request Parameters | | | | --- | --- | | **Body Parameter** | **Description** | | ewallet | Enter the wallet 'id' that you received when you created the company wallet in your sandbox. | | payout\_amount | Enter 100 as the amount received by the beneficiary. | | payout\_method\_type | Enter **pl\_ach\_bank** as the payout method type. | | sender\_currency | Enter **USD** as the code for United States Dollar, the sender's currency. | | sender\_country | Enter **US** as the code for the United States, the sender's country. | | beneficiary\_country | Enter **PL** as the code for Poland, the beneficiary's country. | | payout\_currency | Enter **PLN** as the code for Polish Złoty, the currency received by the beneficiary. | | sender\_entity\_type | Enter ‘individual’ as the type of entity for the sender. | | beneficiary\_entity\_type | Enter ‘individual’ as the type of entity for the beneficiary. | | beneficiary | Enter a `beneficiary object` that has the following fields:

* **company\_name** - company

* **first\_name** - individual

* **last\_name** - individual

* **iban** - individual or company

* **bic\_swift** - individual or company

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | sender | Enter a `sender` object that has the following fields:

* **company\_name** - company

* **country\_of\_incorporation** - company

* **date\_of\_incorporation** - company

* **identification\_value** - company

* **first\_name** - individual

* **last\_name** - individual

* **nationality** - individual

* **date\_of\_birth** - individual

* **identification\_value** - individual

* **identification\_type** - individual

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | description | Enter ‘salary payout - wallet to bank account’ as the description of the payout transaction. | | payout\_options | Enter a `payout_options` object with the following fields:

* **statement\_descriptor** | [###### Create Payout Response](#idp242065_body) [Create Payout](create-payout.html "Create Payout") describes the fields in the response. [###### Local Bank Payout Poland Details](#idp242069_body) | | | | --- | --- | | **Details** | **Description** | | Payout Method Category | bank | | Payout Request String | POMT = pl\_ach\_bank | | Country | Poland | | Sender Currency | USD, ISK, GBP, EUR, SGD, HKD, AUD | | Transaction Limits | N/A | | Settlement Timeframe | 3 days | In this section: Search results -------------- No results found * [Prev](bank-payout-united-arab-emirates.html#idp241836) * [Next](bank-payout-poland.html#idp241887) --- # Invoice Created Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription Webhooks](subscription-webhooks.html) * Invoice Created Webhook * [Prev](trial-nearing-end-webhook.html) * [Next](invoice-finalized-webhook.html) ###### Invoice Created Webhook The **INVOICE\_CREATED** webhook is sent when an invoice is created. [###### Parameters](#idp318607_body) [###### Webhook Header Parameters](#idp318609_body) [###### Webhook Root Parameters](#idp318649_body) [###### Webhook Data Parameters](#idp318722_body) * INVOICE\_CREATED Webhook * { "id": "wh\_66e84017f7f098cf032318b16bf4f4ef", "data": { "id": "invoice\_67debdcfd6f4ffde1a9a9ebbd16cf25b", "tax": 0, "type": "payment", "lines": \[\], "total": 30, "payout": null, "status": "draft", "billing": "pay\_automatically", "payment": null, "currency": "USD", "customer": "cus\_b24574372d44f1ae3b6778ef3cbd1a3b", "discount": null, "due\_date": 1705107682, "metadata": {}, "subtotal": 30, "created\_at": 1702515682, "period\_end": 1705239597, "description": "", "tax\_percent": 0, "period\_start": 1702561197, "subscription": "sub\_74b79f2bf8ecbbc03b155c043842ec70", "attempt\_count": 0, "payout\_fields": null, "billing\_reason": "subscription\_cycle", "days\_until\_due": 30, "payment\_fields": null, "payment\_method": "card\_ce59a4f6bf7b98ba031bfc09367ae6d5", "discount\_amount": 0, "next\_payment\_attempt": 1702515682, "statement\_descriptor": "", "automatic\_attempt\_count": 0 }, "type": "INVOICE\_CREATED", "status": "NEW", "created\_at": 1702515723,     "extended\_timestamp": 1702515723936, "trigger\_operation\_id": "9b6f5cd8-ece8-4c38-a451-d34eac2322d3" } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](trial-nearing-end-webhook.html) * [Next](invoice-finalized-webhook.html) --- # Invoice Finalized Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription Webhooks](subscription-webhooks.html) * Invoice Finalized Webhook * [Prev](invoice-created-webhook.html) * [Next](invoice-payment-created-webhook.html) ###### Invoice Finalized Webhook The **INVOICE\_FINALIZED** webhook is sent when an invoice is finalized. [###### Parameters](#idp319023_body) [###### Webhook Header Parameters](#idp319025_body) [###### Webhook Root Parameters](#idp319065_body) [###### Webhook Data Parameters](#idp319138_body) * INVOICE\_FINALIZED Webhook * { "id": "wh\_4a03fe490c223d088f74d06403dff610", "data": { "id": "invoice\_d90416fef130a820d6eba14a0289b896", "tax": 0, "type": "payment", "lines": \[\], "total": 2, "number": 0, "payout": null, "status": "open", "billing": "pay\_automatically", "payment": null, "currency": "USD", "customer": "cus\_e99fe1f97543ad5e8f1c74d1fde5c407", "discount": null, "due\_date": 1704848034, "metadata": {}, "subtotal": 2, "created\_at": 1702256034, "period\_end": 1702465146, "description": "", "tax\_percent": 0, "period\_start": 1702378746, "subscription": "sub\_d33e7fca810e55e9168032a8e6240a11", "attempt\_count": 1, "payout\_fields": null, "billing\_reason": "subscription\_cycle", "days\_until\_due": 30, "payment\_fields": null, "payment\_method": "card\_85d62689c888bfb0cdb0079a7ce29bf1", "discount\_amount": 0, "next\_payment\_attempt": 1702259634, "statement\_descriptor": "", "automatic\_attempt\_count": 0 }, "type": "INVOICE\_FINALIZED", "status": "CLO", "created\_at": 1702256285,     "extended\_timestamp": 1702256285945, "trigger\_operation\_id": "cdbbd0eb-d1a6-4996-8be7-073c8e6acb25" } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](invoice-created-webhook.html) * [Next](invoice-payment-created-webhook.html) --- # Metadata [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Developer Resources](developer-resources.html) * Metadata * [Prev](code-samples.html) * [Next](metadata.html#UUID-7a850d82-6d32-8d9b-e6bc-bb0f4735a212_UUID-bc31a9f0-8808-ae3a-7327-76680e416436) #### Metadata Contains custom data defined by the client, in the format of a JSON object. The `metadata` object is associated with a parent object, such as a `customer` or `product` object, and is created when the parent object is created or updated. You can use the metadata for storing any additional data you might need for the specific transaction. For example: * Transaction ID. * Identifying information for different tax rates. * Environmental constraints, for goods that are sensitive to water, heat, cold or magnets - in storage or transit. * Warranty registration numbers. * A history of the customer's purchases of the same item. * The customer's search strings on the merchant's site. * Inventory management. * Expiration dates of food items or batteries. * Identifying products as seasonal. * Identity of a set that the product belongs to. * Legal export restrictions. * Name or ID of supplier. The metadata must be in the form of a JSON object. Inside the object, **string**, **number**, **Boolean**, **object**, and **array** JSON data types are supported. The client has full responsibility for the metadata, including validation, consistency, data integrity and updating. Rapyd does not use the metadata for any purpose. "metadata": { "string": "preferred", "number": 1234567890, "Boolean": true, "object": { "string": "person" }, "array\_of\_objects": \[\ {\ "name": "John Doe"\ }, \ {\ "type": "customer"\ }\ \], "array\_of\_strings": \["color", "size"\] } ##### Metadata Errors The following errors are relevant to client-defined metadata: * ERROR\_METADATA\_IS\_NOT\_OBJECT\_TYPE The request attempted an operation on metadata, but the metadata was not an object. The request was rejected. Corrective action: For the ‘metadata’ field, use a JSON object. In this section: Search results -------------- No results found * [Prev](code-samples.html) * [Next](metadata.html#UUID-7a850d82-6d32-8d9b-e6bc-bb0f4735a212_UUID-bc31a9f0-8808-ae3a-7327-76680e416436) --- # Bank Payout Czech Republic [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payout Method Types](payout-method-types.html) * [EMEA](emea-401604.html) * Bank Payout Czech Republic * [Prev](bank-payout-poland.html#idp242069) * [Next](bank-payout-czech-republic.html#idp242120) ##### Bank Payout Czech Republic Disburse funds directly to a bank account. | `Enterprise` **cz\_ach\_bank** is a new local bank payout method type used for payouts in the Czech Republic. A sender can disburse funds into a beneficiary’s bank account in the Czech Republic. This payout method supports several banks in the region and allows the beneficiary to be paid in the country's local currency. The benefits for the user include the ability to create payouts through local bank transfers and disburse funds into Czech bank accounts. [###### Finding Required Fields for the Payout Method Type](#idp242120_body) You need to find the required fields for each payout method type. For that, you'll use [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields") . Enter **cz\_ach\_bank** as the value for the `payout_method_type` path parameter. [###### Requesting a Payout](#idp242127_body) Use [Create Payout](create-payout.html "Create Payout") with the following parameters: Create Payout Request Parameters | | | | --- | --- | | **Body Parameter** | **Description** | | ewallet | Enter the wallet 'id' that you received when you created the company wallet in your sandbox. | | payout\_amount | Enter 100 as the amount received by the beneficiary. | | payout\_method\_type | Enter **cz\_ach\_bank** as the payout method type. | | sender\_currency | Enter **USD** as the code for United States Dollar, the sender's currency. | | sender\_country | Enter **US** as the code for the United States, the sender's country. | | beneficiary\_country | Enter **CZ** as the code for the Czech Republic, the beneficiary's country. | | payout\_currency | Enter **CZK** as the code for Czech Koruna, the currency received by the beneficiary. | | sender\_entity\_type | Enter ‘individual’ as the type of entity for the sender. | | beneficiary\_entity\_type | Enter ‘individual’ as the type of entity for the beneficiary. | | beneficiary | Enter a `beneficiary object` that has the following fields:

* **company\_name** - company

* **first\_name** - individual

* **last\_name** - individual

* **iban** - individual or company

* **bic\_swift** - individual or company

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | sender | Enter a `sender` object that has the following fields:

* **company\_name** - company

* **country\_of\_incorporation** - company

* **date\_of\_incorporation** - company

* **identification\_value** - company

* **first\_name** - individual

* **last\_name** - individual

* **nationality** - individual

* **date\_of\_birth** - individual

* **identification\_value** - individual

* **identification\_type** - individual

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | description | Enter ‘salary payout - wallet to bank account’ as the description of the payout transaction. | | payout\_options | Enter a `payout_options` object with the following fields:

* **statement\_descriptor** | [###### Create Payout Response](#idp242298_body) [Create Payout](create-payout.html "Create Payout") describes the fields in the response. [###### Local Bank Payout Czech Republic Details](#idp242302_body) | | | | --- | --- | | **Details** | **Description** | | Payout Method Category | bank | | Payout Request String | POMT = cz\_ach\_bank | | Country | Czech Republic | | Sender Currency | USD, ISK, GBP, EUR, SGD, HKD, AUD | | Transaction Limits | N/A | | Settlement Timeframe | 3 days | In this section: Search results -------------- No results found * [Prev](bank-payout-poland.html#idp242069) * [Next](bank-payout-czech-republic.html#idp242120) --- # Add Payment Method to Customer [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Customer Payment Method](customer-payment-method.html) * Add Payment Method to Customer * [Prev](customer-payment-method.html) * [Next](add-payment-method-to-customer.html#idp339326) ##### Add Payment Method to Customer Add a payment method to a customer profile (card on file). In the sandbox, adding a **card** payment method type (with the `type` field and the `fields` object) requires 3DS authentication by the cardholder. See [Simulating 3DS Authentication](simulating-3ds-authentication.html "Simulating 3DS Authentication") . In production, requirements differ from card to card. 3DS authentication is required if `payment_method_options.3d_required` is set to **true** or if the bank or card network require it. This method triggers the [Customer Payment Method Created Webhook](customer-payment-method-created-webhook.html "Customer Payment Method Created Webhook") . This webhook contains the same information as the response. In addition, when a **card** payment method type is added to a customer: * If 3DS is not required, this method triggers [Payment Succeeded Webhook](payment-succeeded-webhook.html "Payment Succeeded Webhook") with a zero-amount transaction and the [Card Added Successfully Webhook](card-added-successfully-webhook.html "Card Added Successfully Webhook") . * If 3DS is required, the **Payment Updated** webhook with a zero-amount transaction and the [Card Added Successfully Webhook](card-added-successfully-webhook.html "Card Added Successfully Webhook") are sent following 3DS authentication. * In production, you cannot add a card to a customer profile for a telephone order. The following asynchronous webhooks provide information about later changes to the Payment Method object: * **Payment Method Failed** webhook * [Card Added Failure Webhook](card-added-failure-webhook.html "Card Added Failure Webhook") ### Note * Merchants who have PCI clearance can use the API to add a card payment method. * You can also use a hosted page to add a **card** payment method to a customer. See [Create Card Token](create-card-token.html "Create Card Token") . * Use this method to create a payment method ID for a subscription. See [Create Subscription](create-subscription.html "Create Subscription") . * Use this method to create a network reference ID for repeat card payments. You can also create a network reference ID when you create a payment. See [Create Payment](create-payment.html "Create Payment") . **Prerequisites** Use [Get Payment Method Required Fields](get-payment-method-required-fields.html "Get Payment Method Required Fields") to determine which fields are required to create the payment method. [###### Parameters](#idp339330_body) [###### Request Path Parameters](#idp339332_body) * * customer * ID of the customer. String starting with **cus\_**. [###### Request Header Parameters](#idp339342_body) [###### Request Body Parameters](#idp339402_body) [###### Response Parameters](#idp339475_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string\[\] payment\_method\_type\_categories = new string\[\] { "cash", "bank\_redirect", "bank\_transfer" }; string customerId = "cus\_7b4cd1f607a0b5df13eb1871834c4480"; var metadata = new { merchant\_defined = true }; var requestObj = new { type = "nl\_iban\_bank", metadata = new { merchant\_defined = true } }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", $"/v1/customers/{customerId}/payment\_methods", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { type: 'nl\_iban\_bank', fields: {} }; const result = await makeRequest('POST', '/v1/customers/cus\_f3923ec56a56578b6a18df24d4f32d54/payment\_methods', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * < ? php $path = $\_SERVER\['DOCUMENT\_ROOT'\]; $path. = "//utilities.php"; include($path); $body = \["type" => "nl\_iban\_bank", \]; try { $object = make\_request('post', "/v1/customers/cus\_5861b2ec3e7441bfd43756bb491ddf10/payment\_methods", $body); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ? > * * Python * from pprint import pprint from utilities import make\_request payment\_method = { "type": "nl\_iban\_bank", "fields": {}, "metadata": { "merchant\_defined": True } } result = make\_request(method = 'post', path = '/v1/customers/cus\_0645ee52e91ed51f30176e727b9acfaa/payment\_methods', body = payment\_method)pprint(result) * /v1/customers/:customer/payment\_methods * Bank redirect * curl -X post https://sandboxapi.rapyd.net/v1/customers/cus\_e467136cc0d5ab97ff2c3cbcda43a658/payment\_methods -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d ' { "type": "fi\_sepadirectdebit\_bank", "fields": { "language": "es" }, "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "d6ead88d-eafa-48e0-b048-6f4ddd0fb99f" }, "data": { "id": "other\_e1c5d34df2125607ca08978929c3dd8f", "type": "fi\_sepadirectdebit\_bank", "category": "bank\_redirect", "metadata": { "merchant\_defined": true }, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "user\_authentication", "bic\_swift": "ABCDEFG1234", "account\_last4": "6283", "redirect\_url": "https://sandboxcheckout.rapyd.net/userApproval?accessCode=", "language": "es" } } * Cash * curl -X post https://sandboxapi.rapyd.net/v1/customers/cus\_e467136cc0d5ab97ff2c3cbcda43a658/payment\_methods -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d ' { "type": "it\_psc\_cash", "fields": {}, "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "fefb2258-da98-4311-8518-a224cdf0f783" }, "data": { "id": "other\_6b0709a10cbaa0c120d6e03de5b646c5", "type": "it\_psc\_cash", "category": "cash", "metadata": { "merchant\_defined": true }, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable" } } * Bank transfer * curl -X post https://sandboxapi.rapyd.net/v1/customers/cus\_d3ed65d5091a8398cc3651bcedec1201/payment\_methods -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d ' { "type": "us\_ach\_bank", "fields": { "proof\_of\_authorization": false, "first\_name": "John", "last\_name": "Doe", "company\_name": "Acme", "routing\_number": "345-345-op4", "payment\_purpose": "goods", "account\_number": "rete-34534-4t" }, "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "a27cfdbd-3d95-475d-a381-acfb668049c1" }, "data": { "id": "other\_bc428c38988a5d5aa5a09b79f32b2b15", "type": "us\_ach\_bank", "category": "bank\_transfer", "metadata": { "merchant\_defined": true }, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "last\_name": "Doe", "first\_name": "John", "company\_name": "Acme", "account\_number": "345-345-op4", "routing\_number": "2345345345345345", "payment\_purpose": "goods", "proof\_of\_authorization": false } } * Card * curl -X post https://sandboxapi.rapyd.net/v1/customers/cus\_dade6eecffc1d3e61af83af957104b79/payment\_methods -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d ' { "type": "us\_debit\_mastercard\_card", "fields": { "number": "4111111111111111", "expiration\_month": "12", "expiration\_year": "25", "cvv": "555", "name": "John Doe" }, "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "d6ead88d-eafa-48e0-b048-6f4ddd0fb99f" }, "data": { "id": "other\_e1c5d34df2125607ca08978929c3dd8f", "type": "fi\_sepadirectdebit\_bank", "category": "bank\_redirect", "metadata": { "merchant\_defined": true }, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "user\_authentication", "bic\_swift": "ABCDEFG1234", "account\_last4": "6283", "redirect\_url": "https://sandboxcheckout.rapyd.net/userApproval?accessCode=", "language": "es" } } "type": "us\_debit\_mastercard\_card", "fields": { "number": "4111111111111111", "expiration\_month": "12", "expiration\_year": "25", "cvv": "555", "name": "John Doe" }, "metadata": { "merchant\_defined": true } } * Card with 3DS data and currency * curl -X post https://sandboxapi.rapyd.net/v1/customers/cus\_dade6eecffc1d3e61af83af957104b79/payment\_methods -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d ' { "type": "is\_mastercard\_card", "fields": { "name": "John Smith", "number": "4462030000000000", "expiration\_month": "05", "expiration\_year": "25", "cvv": "222" }, "complete\_payment\_url": "https://www.example4567.com", "error\_payment\_url": "https://www.example4567.com", "payment\_method\_options": { "3d\_version": "2.2.0", "cavv": "AddddFVmd4iZAKq7zA3u/AAAB=", "eci": "05", "xid": null, "ds\_trans\_id": "4567a4f1-faa4-419e-b39a-3cc9779398", "currency": "EUR" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "2fa33588-729a-496a-8646-f853ff46d523" }, "data": { "id": "card\_6c88c3931d8c76e39d24fce5521ec289", "type": "is\_mastercard\_card", "category": "card", "metadata": {}, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "name": "John Smith", "last4": "0000", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": "DEBIT", "brand": "VISA", "level": "CLASSIC", "issuer": "MODULR FS LIMITED", "country": "GB", "bin\_number": "446203" }, "expiration\_year": "25", "expiration\_month": "05", "fingerprint\_token": "ocfp\_1476e28831f830fb85356e3b61a1ed84", "redirect\_url": "https://sandboxcheckout.rapyd.net/3ds-payment?token=payment\_32b1081fa786d8a20143c697c9321238", "network\_reference\_id": 562415, "complete\_payment\_url": "https://www.example4567.com", "error\_payment\_url": "https://www.example4567.com" } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. A number for a bank account that is used for international transfers. A server used by [issuing banks](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_issuer) to authenticate card users by [3DS](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_rds) authentication. Search results -------------- No results found * [Prev](customer-payment-method.html) * [Next](add-payment-method-to-customer.html#idp339326) --- # Bank Payout Hungary [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payout Method Types](payout-method-types.html) * [EMEA](emea-401604.html) * Bank Payout Hungary * [Prev](bank-payout-czech-republic.html#idp242302) * [Next](bank-payout-hungary.html#idp242353) ##### Bank Payout Hungary Disburse funds directly to a bank account. | `Enterprise` **hu\_ach\_bank** is a new local bank payout method type used for payouts in Hungary. A sender can disburse funds into a beneficiary’s bank account in Hungary. This payout method supports several banks in the region and allows the beneficiary to be paid in the country's local currency. The benefits for the user include the ability to create payouts through local bank transfers and disburse funds into Hungarian bank accounts. [###### Finding Required Fields for the Payout Method Type](#idp242353_body) You need to find the required fields for each payout method type. For that, you'll use [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields") . Enter **hu\_ach\_bank** as the value for the `payout_method_type` path parameter. [###### Requesting a Payout](#idp242360_body) Use [Create Payout](create-payout.html "Create Payout") with the following parameters: Create Payout Request Parameters | | | | --- | --- | | **Body Parameter** | **Description** | | ewallet | Enter the wallet 'id' that you received when you created the company wallet in your sandbox. | | payout\_amount | Enter 100 as the amount received by the beneficiary. | | payout\_method\_type | Enter **hu\_ach\_bank** as the payout method type. | | sender\_currency | Enter **USD** as the code for United States Dollar, the sender's currency. | | sender\_country | Enter **US** as the code for the United States, the sender's country. | | beneficiary\_country | Enter **HU** as the code for Hungary, the beneficiary's country. | | payout\_currency | Enter **HUF** as the code for Hungarian Forint, the currency received by the beneficiary. | | sender\_entity\_type | Enter ‘individual’ as the type of entity for the sender. | | beneficiary\_entity\_type | Enter ‘individual’ as the type of entity for the beneficiary. | | beneficiary | Enter a `beneficiary object` that has the following fields:

* **company\_name** - company

* **first\_name** - individual

* **last\_name** - individual

* **iban** - individual or company

* **bic\_swift** - individual or company

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | sender | Enter a `sender` object that has the following fields:

* **company\_name** - company

* **country\_of\_incorporation** - company

* **date\_of\_incorporation** - company

* **identification\_value** - company

* **first\_name** - individual

* **last\_name** - individual

* **nationality** - individual

* **date\_of\_birth** - individual

* **identification\_value** - individual

* **identification\_type** - individual

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | description | Enter ‘salary payout - wallet to bank account’ as the description of the payout transaction. | | payout\_options | Enter a `payout_options` object with the following fields:

* **statement\_descriptor** | [###### Create Payout Response](#idp242531_body) [Create Payout](create-payout.html "Create Payout") describes the fields in the response. [###### Local Bank Payout Hungary Details](#idp242535_body) | | | | --- | --- | | **Details** | **Description** | | Payout Method Category | bank | | Payout Request String | POMT = hu\_ach\_bank | | Country | Hungary | | Sender Currency | USD, ISK, GBP, EUR, SGD, HKD, AUD | | Transaction Limits | N/A | | Settlement Timeframe | 3 days | In this section: Search results -------------- No results found * [Prev](bank-payout-czech-republic.html#idp242302) * [Next](bank-payout-hungary.html#idp242353) --- # Invoice Payment Created Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription Webhooks](subscription-webhooks.html) * Invoice Payment Created Webhook * [Prev](invoice-finalized-webhook.html) * [Next](invoice-payment-failed-webhook.html) ###### Invoice Payment Created Webhook The **INVOICE\_PAYMENT\_CREATED** webhook is sent when a payment against an invoice is created. [###### Parameters](#idp319439_body) [###### Webhook Header Parameters](#idp319441_body) [###### Webhook Root Parameters](#idp319481_body) [###### Webhook Data Parameters](#idp319554_body) * INVOICE\_PAYMENT\_CREATED Webhook * { "id": "wh\_83311530262abb943ac9ae3b6e34a441", "data": { "id": "invoice\_fdbe5157cff4e25480611da238922e46", "tax": 0, "type": "payment", "lines": \[\], "total": 800, "payout": null, "status": "paid", "billing": "pay\_automatically", "payment": { "id": "payment\_93bdf7d314a246a3b41024890c15c33d", "mid": "", "paid": true, "order": null, "amount": 800, "escrow": null, "status": "CLO", "address": null, "dispute": null, "fx\_rate": 1, "invoice": "invoice\_fdbe5157cff4e25480611da238922e46", "outcome": null, "paid\_at": 1702536994, "refunds": null, "captured": true, "ewallets": \[{\ "amount": 800,\ "percent": 100,\ "ewallet\_id": "ewallet\_e2150f478c15d97b807b9ed179b798a0",\ "refunded\_amount": 0\ }\ \], "metadata": {}, "refunded": false, "auth\_code": null, "flow\_type": "", "created\_at": 1702536989, "error\_code": "", "ewallet\_id": "ewallet\_e2150f478c15d97b807b9ed179b798a0", "expiration": 1703141790, "fixed\_side": "", "is\_partial": false, "description": "", "next\_action": "not\_applicable", "country\_code": "MX", "failure\_code": "", "instructions": \[\], "payment\_fees": null, "redirect\_url": "", "visual\_codes": {}, "cancel\_reason": null, "currency\_code": "MXN", "group\_payment": "", "receipt\_email": "", "textual\_codes": {}, "customer\_token": "cus\_c2499761d00f5f7130d57a67baaf2af2", "payment\_method": "card\_89f7ff14b57651628d7ef470562bb75c", "receipt\_number": "", "transaction\_id": "", "failure\_message": "", "initiation\_type": "recurring", "original\_amount": 800, "refunded\_amount": 0, "error\_payment\_url": "", "payment\_method\_data": { "id": "card\_89f7ff14b57651628d7ef470562bb75c", "name": "John Doe", "type": "mx\_visacredit\_card", "image": "", "last4": "0060", "category": "card", "metadata": {}, "acs\_check": "unchecked", "cvv\_check": "pass", "bin\_details": { "type": "CREDIT", "brand": "MASTERCARD", "level": "PLATINUM", "issuer": "MAYBANK SINGAPORE LIMITED", "country": "SG", "bin\_number": "518834" }, "next\_action": "not\_applicable", "webhook\_url": "", "expiration\_year": "25", "expiration\_month": "01", "fingerprint\_token": "ocfp\_11ECFC393995502381220EC01B2F2B1B", "supporting\_documentation": "" }, "payment\_method\_type": "mx\_visacredit\_card", "complete\_payment\_url": "", "remitter\_information": {}, "statement\_descriptor": "", "merchant\_reference\_id": "", "payment\_method\_options": {}, "merchant\_requested\_amount": null, "merchant\_requested\_currency": null, "payment\_method\_type\_category": "card" }, "currency": "MXN", "customer": "cus\_c2499761d00f5f7130d57a67baaf2af2", "discount": null, "due\_date": 1705128818, "metadata": {}, "subtotal": 800, "created\_at": 1702536818, "period\_end": 1705215218, "description": "", "tax\_percent": 0, "period\_start": 1702536818, "subscription": "sub\_efae7e085ecff92d0c9a7f41ecd0a169", "attempt\_count": 1, "payout\_fields": null, "billing\_reason": "subscription\_create", "days\_until\_due": 30, "payment\_fields": null, "payment\_method": "card\_89f7ff14b57651628d7ef470562bb75c", "discount\_amount": 0, "next\_payment\_attempt": null, "statement\_descriptor": "", "automatic\_attempt\_count": 0 }, "type": "INVOICE\_PAYMENT\_CREATED", "status": "NEW", "created\_at": 1702537025,     "extended\_timestamp": 1702537025462, "trigger\_operation\_id": "ba8a00d8-8a08-4763-b6b6-fb85e953e99c" } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](invoice-finalized-webhook.html) * [Next](invoice-payment-failed-webhook.html) --- # Customer [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * Customer * [Prev](dispute-errors.html) * [Next](create-customer.html) #### Customer Customer profile, where payment methods are stored for future use. Details of the payment method are stored securely in Rapyd's vault, including sensitive personal identifying information (PII) that is subject to regulation by law or payment card industry (PCI) rules. When the payment method is required for an operation, the client uses a token and not the PII. The `address` object can be added to a Customer object, a Payment Method object, a wallet contact, or the `business_details` field of a business wallet. ### Note * If you create a customer with a payment method, the payment method is automatically assigned as the customer's default payment method. If you create the customer without a payment method, you must add payment methods individually, and then assign one of them as the default in a separate API call. * You cannot delete the customer's default payment method. * If you assign a coupon to a customer, the discount defined in the coupon will apply to all purchases made by the customer. * If you create a subscription for periodic payments from the customer, the customer must have a default payment method. * If you create an invoice for payment by the customer, the customer must have a default payment method. * To create a customer, see [Create Customer](create-customer.html "Create Customer") . Customer Methods * [Create Customer](create-customer.html "Create Customer") * [Update Customer](update-customer.html "Update Customer") * [List Customers](list-customers-364253.html "List Customers") * [Retrieve Customer](retrieve-customer.html "Retrieve Customer") * [Delete Customer](delete-customer.html "Delete Customer") * [Delete Discount from Customer](delete-discount-from-customer.html "Delete Discount from Customer") Customer Webhooks * [Customer Created Webhook](customer-created-webhook.html "Customer Created Webhook") * [Customer Deleted Webhook](customer-deleted-webhook.html "Customer Deleted Webhook") * [Customer Updated Webhook](customer-updated-webhook.html "Customer Updated Webhook") Customer Error Messages * [Customer Errors](customer-errors.html "Customer Errors") In this section: Search results -------------- No results found * [Prev](dispute-errors.html) * [Next](create-customer.html) --- # Bank Payout Romania [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payout Method Types](payout-method-types.html) * [EMEA](emea-401604.html) * Bank Payout Romania * [Prev](bank-payout-hungary.html#idp242535) * [Next](bank-payout-romania.html#idp242586) ##### Bank Payout Romania Disburse funds directly to a bank account. | `Enterprise` **ro\_ach\_bank** is a new local bank payout method type used for payouts in Romania. A sender can disburse funds into a beneficiary’s bank account in Romania. This payout method supports several banks in the region and allows the beneficiary to be paid in the country's local currency. The benefits for the user include the ability to create payouts through local bank transfers and disburse funds into Romanian bank accounts. [###### Finding Required Fields for the Payout Method Type](#idp242586_body) You need to find the required fields for each payout method type. For that, you'll use [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields") . Enter **ro\_ach\_bank** as the value for the `payout_method_type` path parameter. [###### Requesting a Payout](#idp242593_body) Use [Create Payout](create-payout.html "Create Payout") with the following parameters: Create Payout Request Parameters | | | | --- | --- | | **Body Parameter** | **Description** | | ewallet | Enter the wallet 'id' that you received when you created the company wallet in your sandbox. | | payout\_amount | Enter 100 as the amount received by the beneficiary. | | payout\_method\_type | Enter **ro\_ach\_bank** as the payout method type. | | sender\_currency | Enter **USD** as the code for United States Dollar, the sender's currency. | | sender\_country | Enter **US** as the code for the United States, the sender's country. | | beneficiary\_country | Enter **RO** as the code for Romania, the beneficiary's country. | | payout\_currency | Enter **RON** as the code for Romanian Leu, the currency received by the beneficiary. | | sender\_entity\_type | Enter ‘individual’ as the type of entity for the sender. | | beneficiary\_entity\_type | Enter ‘individual’ as the type of entity for the beneficiary. | | beneficiary | Enter a `beneficiary object` that has the following fields:

* **company\_name** - company

* **first\_name** - individual

* **last\_name** - individual

* **iban** - individual or company

* **bic\_swift** - individual or company

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | sender | Enter a `sender` object that has the following fields:

* **company\_name** - company

* **country\_of\_incorporation** - company

* **date\_of\_incorporation** - company

* **identification\_value** - company

* **first\_name** - individual

* **last\_name** - individual

* **nationality** - individual

* **date\_of\_birth** - individual

* **identification\_value** - individual

* **identification\_type** - individual

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | description | Enter ‘salary payout - wallet to bank account’ as the description of the payout transaction. | | payout\_options | Enter a `payout_options` object with the following fields:

* **statement\_descriptor** | [###### Create Payout Response](#idp242764_body) [Create Payout](create-payout.html "Create Payout") describes the fields in the response. [###### Local Bank Payout Romania Details](#idp242768_body) | | | | --- | --- | | **Details** | **Description** | | Payout Method Category | bank | | Payout Request String | POMT = ro\_ach\_bank | | Country | Romania | | Sender Currency | USD, ISK, GBP, EUR, SGD, HKD, AUD | | Transaction Limits | N/A | | Settlement Timeframe | 3 days | In this section: Search results -------------- No results found * [Prev](bank-payout-hungary.html#idp242535) * [Next](bank-payout-romania.html#idp242586) --- # Invoice Payment Failed Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription Webhooks](subscription-webhooks.html) * Invoice Payment Failed Webhook * [Prev](invoice-payment-created-webhook.html) * [Next](invoice-payment-succeeded-webhook.html) ###### Invoice Payment Failed Webhook The **INVOICE\_PAYMENT\_FAILED** webhook is sent when an error occurs in accepting the payment for an invoice. [###### Parameters](#idp319855_body) [###### Webhook Header Parameters](#idp319857_body) [###### Webhook Root Parameters](#idp319897_body) [###### Webhook Data Parameters](#idp319970_body) * INVOICE\_PAYMENT\_FAILED Webhook * { "id": "wh\_94c976fca2b12173fcd0462514c6650e", "data": { "id": "invoice\_39860731ca5e0a84b142f263d1d7df73", "tax": 0, "type": "payment", "lines": \[{\ "id": "il\_304e3f5733e4a063dbc99780bdbd6108",\ "plan": {\ "id": "plan\_0187777c7288a0ed27e114f3bd34df88",\ "tiers": \[\],\ "active": true,\ "amount": 10,\ "currency": "USD",\ "interval": "month",\ "metadata": {},\ "nickname": "",\ "created\_at": 1702540082,\ "tiers\_mode": "",\ "usage\_type": "licensed",\ "billing\_scheme": "per\_unit",\ "interval\_count": 1,\ "aggregate\_usage": "sum",\ "transform\_usage": {\ "round": "up",\ "divide\_by": 1\ },\ "trial\_period\_days": 0\ },\ "type": "subscription",\ "amount": 120,\ "period": {\ "end": 1705218484,\ "start": 1702540084\ },\ "currency": "USD",\ "metadata": {},\ "quantity": 12,\ "proration": false,\ "description": "Subs Checks",\ "discountable": true,\ "invoice\_item": "",\ "subscription": "sub\_5486e171287dc29b02dd7901df16e877",\ "subscription\_item": "subi\_0717667f66e356693f0b7503abc043c1"\ }\ \], "total": 120, "payout": null, "status": "open", "billing": "pay\_automatically", "payment": null, "currency": "USD", "customer": "cus\_7bca8402314efdade4fad591d966d2bc", "discount": null, "due\_date": 1705132084, "metadata": {}, "subtotal": 120, "created\_at": 1702540084, "period\_end": 1705218484, "description": "", "tax\_percent": 0, "period\_start": 1702540084, "subscription": "sub\_5486e171287dc29b02dd7901df16e877", "attempt\_count": 1, "payout\_fields": null, "billing\_reason": "subscription\_create", "days\_until\_due": 30, "payment\_fields": null, "payment\_method": "card\_de822feb16d72300af6bb07af2054565", "discount\_amount": 0, "next\_payment\_attempt": 1702543684, "statement\_descriptor": "", "automatic\_attempt\_count": 0 }, "type": "INVOICE\_PAYMENT\_FAILED", "status": "NEW", "created\_at": 1702540317,     "extended\_timestamp": 1702540317444, "trigger\_operation\_id": "2ba51d77-d3bb-426a-90ec-1c66bc4a2759" } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](invoice-payment-created-webhook.html) * [Next](invoice-payment-succeeded-webhook.html) --- # Payment Method Errors [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Payment Method Type](payment-method-type.html) * Payment Method Errors * [Prev](get-payment-method-required-fields.html#idp270159) * [Next](payment.html) ##### Payment Method Errors | Error Code | Description | | --- | --- | | ERROR\_GET\_PAYMENT\_METHOD\_TYPE | The request attempted an operation that requires a payment method, but the payment method type was not recognized or is not available for this merchant. Corrective action: For the 'type' field in the 'payment\_method' object or in the 'data' object, use a payment method type that this merchant is authorized to use. | | ERROR\_PAYMENT\_METHOD\_EXPIRED | The request attempted an operation that requires a payment method, but the payment method has expired. The request was rejected. Corrective action: Use a different payment method or use 'Add Payment Method to Customer' to refresh the payment method. Advise the customer to complete the authentication process. | | ERROR\_UPDATE\_CARD\_CVV\_NOT\_UPDATABLE | The request tried to update a card, but it tried to set a new value for the 'cvv' field. The 'cvv' field cannot be updated. The request was rejected. Corrective action: Do not change the 'cvv' field. | | ERROR\_UPDATE\_PAYMENT\_METHOD | The request tried to update a payment method, but one or more fields were missing or contained incorrect values. The request was rejected. Corrective action: Check all input fields. For details, see the API Reference. | | INVALID\_CARD\_EXPIRATION\_DATE | The request attempted an operation that requires a card payment method, but the card expiration date was not valid. The request was rejected. Corrective action: In the 'fields' object, set 'expiration\_month' to a 2-digit number between 01 and 12, and set 'expiration\_year' to a 2-digit number greater than or equal to the last two digits of the current year. | | INVALID\_PAYMENT\_METHOD | The request tried to perform an operation that requires a payment method, but the payment method was not found. The request was rejected. Corrective action: Use the correct payment method ID or payment method object. | | INVALID\_PAYMENT\_METHOD\_TYPE | The request tried to perform an operation that requires a payment method type, but the type was not recognized. The request was rejected. Corrective action: To find payment method types for a country, use 'List Payment Methods by Country'. | | INVALID\_REQUIRED\_PAYMENT\_METHOD\_FIELDS | The request attempted an operation that requires a payment method, but the required fields were missing. The request was rejected. Corrective action: Run 'Get Payment Method Required Fields'. Inside the 'payment\_method' object, populate the 'fields' object with all required fields. | | MISSING\_PAYMENT\_METHOD\_REQUIRED\_FIELD | The request attempted an operation that requires fields for a payment method, but a field parameter was missing or did not have a valid value. The request was rejected. Corrective action: The end of the response\_code shows the name of the field. Provide this field with a proper value. | | PAYMENT\_METHOD\_FIELD\_NOT\_UPDATABLE | The request tried to update a payment method of a customer, but it tried to set a new value for a field that does not exist or is not modifiable. The request was rejected. Corrective action: Do not change the value of the field named at the end of the error code. | | UNKNOWN\_PAYMENT\_METHOD\_FIELD | The request attempted an operation that requires an object describing a payment method, but there was an extra field in the 'fields' object. The name of the extra field appears at the end of the response code. The request was rejected. Corrective action: Populate the 'fields' object with only the fields that are required. | In this section: Search results -------------- No results found * [Prev](get-payment-method-required-fields.html#idp270159) * [Next](payment.html) --- # Bank Payout Denmark [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payout Method Types](payout-method-types.html) * [EMEA](emea-401604.html) * Bank Payout Denmark * [Prev](bank-payout-romania.html#idp242768) * [Next](bank-payout-denmark.html#idp242819) ##### Bank Payout Denmark Disburse funds directly to a bank account. | `Enterprise` **dk\_ach\_bank** is a new local bank payout method type used for payouts in Denmark. A sender can disburse funds into a beneficiary’s bank account in Denmark. This payout method supports several banks in the region and allows the beneficiary to be paid in the country's local currency. The benefits for the user include the ability to create payouts through local bank transfers and disburse funds into Danish bank accounts. [###### Finding Required Fields for the Payout Method Type](#idp242819_body) You need to find the required fields for each payout method type. For that, you'll use [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields") . Enter **dk\_ach\_bank** as the value for the `payout_method_type` path parameter. [###### Requesting a Payout](#idp242826_body) Use [Create Payout](create-payout.html "Create Payout") with the following parameters: Create Payout Request Parameters | | | | --- | --- | | **Body Parameter** | **Description** | | ewallet | Enter the wallet 'id' that you received when you created the company wallet in your sandbox. | | payout\_amount | Enter 100 as the amount received by the beneficiary. | | payout\_method\_type | Enter **dk\_ach\_bank** as the payout method type. | | sender\_currency | Enter **USD** as the code for United States Dollar, the sender's currency. | | sender\_country | Enter **US** as the code for the United States, the sender's country. | | beneficiary\_country | Enter **DK** as the code for Denmark, the beneficiary's country. | | payout\_currency | Enter **DKK** as the code for Danish Krone, the currency received by the beneficiary. | | sender\_entity\_type | Enter ‘individual’ as the type of entity for the sender. | | beneficiary\_entity\_type | Enter ‘individual’ as the type of entity for the beneficiary. | | beneficiary | Enter a `beneficiary object` that has the following fields:

* **company\_name** - company

* **first\_name** - individual

* **last\_name** - individual

* **iban** - individual or company

* **bic\_swift** - individual or company

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | sender | Enter a `sender` object that has the following fields:

* **company\_name** - company

* **country\_of\_incorporation** - company

* **date\_of\_incorporation** - company

* **identification\_value** - company

* **first\_name** - individual

* **last\_name** - individual

* **nationality** - individual

* **date\_of\_birth** - individual

* **identification\_value** - individual

* **identification\_type** - individual

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | description | Enter ‘salary payout - wallet to bank account’ as the description of the payout transaction. | | payout\_options | Enter a `payout_options` object with the following fields:

* **statement\_descriptor** | [###### Create Payout Response](#idp242997_body) [Create Payout](create-payout.html "Create Payout") describes the fields in the response. [###### Local Bank Payout Denmark Details](#idp243001_body) | | | | --- | --- | | **Details** | **Description** | | Payout Method Category | bank | | Payout Request String | POMT = dk\_ach\_bank | | Country | Denmark | | Sender Currency | USD, ISK, GBP, EUR, SGD, HKD, AUD | | Transaction Limits | N/A | | Settlement Timeframe | 3 days | In this section: Search results -------------- No results found * [Prev](bank-payout-romania.html#idp242768) * [Next](bank-payout-denmark.html#idp242819) --- # Invoice Payment Succeeded Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription Webhooks](subscription-webhooks.html) * Invoice Payment Succeeded Webhook * [Prev](invoice-payment-failed-webhook.html) * [Next](invoice-updated-webhook.html) ###### Invoice Payment Succeeded Webhook The **INVOICE\_PAYMENT\_SUCCEEDED** webhook is sent when Rapyd successfully completes accepting the payment for an invoice. [###### Parameters](#idp320271_body) [###### Webhook Header Parameters](#idp320273_body) [###### Webhook Root Parameters](#idp320313_body) [###### Webhook Data Parameters](#idp320386_body) * INVOICE\_PAYMENT\_SUCCEEDED Webhook * { "id": "wh\_7a9f43e63dc5c1d4435bfcf55ec6bc07", "data": { "id": "invoice\_d3274be6b5b83ff1a3cda9ce59e77c10", "tax": 0, "type": "payment", "lines": \[{\ "id": "il\_fa63a2550087849d9a85325fff6e5946",\ "plan": {\ "id": "plan\_8c14014760cac1d944ba903d606c168e",\ "tiers": \[\],\ "active": true,\ "amount": 1,\ "currency": "USD",\ "interval": "day",\ "metadata": {},\ "nickname": "",\ "created\_at": 1700068391,\ "tiers\_mode": "",\ "usage\_type": "metered",\ "billing\_scheme": "per\_unit",\ "interval\_count": 1,\ "aggregate\_usage": "sum",\ "transform\_usage": {\ "round": "up",\ "divide\_by": 1\ },\ "trial\_period\_days": 0\ },\ "type": "subscription",\ "amount": 0,\ "period": {\ "end": 1702574051,\ "start": 1702487651\ },\ "currency": "USD",\ "metadata": {},\ "quantity": 0,\ "proration": false,\ "description": "IDV Checks",\ "discountable": true,\ "invoice\_item": "",\ "subscription": "sub\_e11768e69c4f25f54aeb32fbbe4f0763",\ "subscription\_item": "subi\_08af2d3fcfd7fd500c13ec7d5997d23e"\ }\ \], "total": 0, "payout": null, "status": "paid", "billing": "pay\_automatically", "payment": null, "currency": "USD", "customer": "cus\_97261d3e9d05bff1a65a05f8eb6e8b73", "discount": null, "due\_date": 0, "metadata": {}, "subtotal": 0, "created\_at": 1702515599, "period\_end": 1702660451, "description": "", "tax\_percent": 0, "period\_start": 1702574051, "subscription": "sub\_e11768e69c4f25f54aeb32fbbe4f0763", "attempt\_count": 0, "payout\_fields": null, "billing\_reason": "subscription\_cycle", "days\_until\_due": 30, "payment\_fields": null, "payment\_method": "card\_1ef2b450ce89f39f16f088855bae901c", "discount\_amount": 0, "next\_payment\_attempt": null, "statement\_descriptor": "", "automatic\_attempt\_count": 0 }, "type": "INVOICE\_PAYMENT\_SUCCEEDED", "status": "NEW", "created\_at": 1702515919,     "extended\_timestamp": 1702515919834, "trigger\_operation\_id": "9cf879d7-a837-4906-b2f8-359c77cd9558" } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](invoice-payment-failed-webhook.html) * [Next](invoice-updated-webhook.html) --- # Simulating 3DS Authentication [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Developer Resources](developer-resources.html) * [Resources for Testing in the Sandbox](resources-for-testing-in-the-sandbox.html) * [Testing for Payment API](testing-for-payment-api.html) * Simulating 3DS Authentication * [Prev](simulating-rapyd-verify-application-responses.html) * [Next](simulating-3ds-authentication---api-method.html) ###### Simulating 3DS Authentication Certain card operations require 3DS authentication by the cardholder. You can simulate this authentication in the sandbox. Relevant where the payment method type is **card**. For details, see the following pages: * [Simulating 3DS Authentication - API Method](simulating-3ds-authentication---api-method.html "Simulating 3DS Authentication - API Method") * [Simulating 3DS Authentication - Hosted Page](simulating-3ds-authentication---hosted-page.html "Simulating 3DS Authentication - Hosted Page") Related Information * [Card Payment With 3DS Verification](card-payment-with-3ds-verification.html "Card Payment With 3DS Verification") In this section: Search results -------------- No results found * [Prev](simulating-rapyd-verify-application-responses.html) * [Next](simulating-3ds-authentication---api-method.html) --- # Card Token [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * Card Token * [Prev](customer-payment-method-errors.html) * [Next](create-card-token.html) #### Card Token Represents a card payment method that is stored in a customer profile. Sensitive [personal identifying information (PII)](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pii "Personally Identifying Information") is stored in Rapyd's vault. The client can use the token wherever a payment method is required, such as creating a payment, subscription or invoice. Card PII is carefully restricted by the rules of the [payment card industry (PCI)](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pci "Payment Card Industry") . To generate a card token, the client creates a hosted page that collects the PII directly from the customer and sends it to Rapyd's vault. The hosted page also enables the customer to manage cards in the customer profile by adding or deleting a payment method or setting a default payment method. To generate a token for non-card payment methods, use [Add Payment Method to Customer](add-payment-method-to-customer.html "Add Payment Method to Customer") . If you have PCI clearance, you can also use it to generate a token for a card payment method. Prerequisites * Customer. See [Create Customer](create-customer.html "Create Customer") . Card Token Methods * [Create Card Token](create-card-token.html "Create Card Token") - Create a hosted page where the customer can save card details, manage cards, and choose a card as the default payment method. Card Token Errors * [Card Token Errors](card-token-errors.html "Card Token Errors") In this section: Sensitive personal information that can be used to identify or locate an individual. PII is protected by law and [PCI](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pci) industry rules. All financial institutions that issue cards or process card transactions. The Payment Card Industry Security Standards Council develops and publishes regulations for the industry. Search results -------------- No results found * [Prev](customer-payment-method-errors.html) * [Next](create-card-token.html) --- # Bank Payout Sweden [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payout Method Types](payout-method-types.html) * [EMEA](emea-401604.html) * Bank Payout Sweden * [Prev](bank-payout-denmark.html#idp243001) * [Next](bank-payout-sweden.html#idp243052) ##### Bank Payout Sweden Disburse funds directly to a bank account. | `Enterprise` **se\_ach\_bank** is a new local bank payout method type used for payouts in Sweden. A sender can disburse funds into a beneficiary’s bank account in Sweden. This payout method supports several banks in the region and allows the beneficiary to be paid in the country's local currency. The benefits for the user include the ability to create payouts through local bank transfers and disburse funds into Swedish bank accounts. [###### Finding Required Fields for the Payout Method Type](#idp243052_body) You need to find the required fields for each payout method type. For that, you'll use [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields") . Enter **se\_ach\_bank** as the value for the `payout_method_type` path parameter. [###### Requesting a Payout](#idp243059_body) Use [Create Payout](create-payout.html "Create Payout") with the following parameters: Create Payout Request Parameters | | | | --- | --- | | **Body Parameter** | **Description** | | ewallet | Enter the wallet 'id' that you received when you created the company wallet in your sandbox. | | payout\_amount | Enter 100 as the amount received by the beneficiary. | | payout\_method\_type | Enter **se\_ach\_bank** as the payout method type. | | sender\_currency | Enter **USD** as the code for United States Dollar, the sender's currency. | | sender\_country | Enter **US** as the code for the United States, the sender's country. | | beneficiary\_country | Enter **SE** as the code for Sweden, the beneficiary's country. | | payout\_currency | Enter **SEK** as the code for Swedish Krona, the currency received by the beneficiary. | | sender\_entity\_type | Enter ‘individual’ as the type of entity for the sender. | | beneficiary\_entity\_type | Enter ‘individual’ as the type of entity for the beneficiary. | | beneficiary | Enter a `beneficiary object` that has the following fields:

* **company\_name** - company

* **first\_name** - individual

* **last\_name** - individual

* **iban** - individual or company

* **bic\_swift** - individual or company

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | sender | Enter a `sender` object that has the following fields:

* **company\_name** - company

* **country\_of\_incorporation** - company

* **date\_of\_incorporation** - company

* **identification\_value** - company

* **first\_name** - individual

* **last\_name** - individual

* **nationality** - individual

* **date\_of\_birth** - individual

* **identification\_value** - individual

* **identification\_type** - individual

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | description | Enter ‘salary payout - wallet to bank account’ as the description of the payout transaction. | | payout\_options | Enter a `payout_options` object with the following fields:

* **statement\_descriptor** | [###### Create Payout Response](#idp243230_body) [Create Payout](create-payout.html "Create Payout") describes the fields in the response. [###### Local Bank Payout Sweden Details](#idp243234_body) | | | | --- | --- | | **Details** | **Description** | | Payout Method Category | bank | | Payout Request String | POMT = se\_ach\_bank | | Country | Sweden | | Sender Currency | USD, ISK, GBP, EUR, SGD, HKD, AUD | | Transaction Limits | N/A | | Settlement Timeframe | 3 days | In this section: Search results -------------- No results found * [Prev](bank-payout-denmark.html#idp243001) * [Next](bank-payout-sweden.html#idp243052) --- # New Cycle Started Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription Webhooks](subscription-webhooks.html) * New Cycle Started Webhook * [Prev](subscription-webhooks.html#idp315190) * [Next](subscription-canceled-webhook.html) ###### New Cycle Started Webhook The **CUSTOMER\_SUBSCRIPTION\_NEW\_CYCLE** webhook is sent when a new billing cycle starts. [###### Parameters](#idp315223_body) [###### Webhook Header Parameters](#idp315225_body) [###### Webhook Root Parameters](#idp315265_body) [###### Webhook Data Parameters](#idp315338_body) * CUSTOMER\_SUBSCRIPTION\_NEW\_CYCLE Webhook * { "id": "wh\_3e168ef0ed50e6e1fff5382fb711f911", "type": "CUSTOMER\_SUBSCRIPTION\_NEW\_CYCLE", "data": { "id": "sub\_005ca057b15771a535469a60ccce98a2", "type": "payment", "status": "active", "billing": "pay\_automatically", "discount": null, "ended\_at": null, "metadata": {}, "trial\_end": null, "created\_at": 1641802550, "canceled\_at": null, "tax\_percent": 0, "trial\_start": null, "payout\_fields": null, "customer\_token": "cus\_d3ed65d5091a8398cc3651bcedec1201", "days\_until\_due": null, "payment\_fields": null, "payment\_method": "card\_85264b18bc1bfb949dbb2d88d3d5c12c", "current\_period\_end": 1641975350, "subscription\_items": { "url": "/v1/subscription\_items?subscription=sub\_005ca057b15771a535469a60ccce98a2", "data": \[{\ "id": "subi\_139cc833a43aa340ee25ca59a4a34ea6",\ "plan": {\ "id": "plan\_a2b5060d3e93d4c32883ac2b39c3f2de",\ "tiers": \[\],\ "amount": 1050,\ "product": {\ "id": "product\_2ddd6f6b43f598d30543ef23ab806b58",\ "name": "Acme music stream",\ "skus": \[\],\ "type": "services",\ "active": true,\ "images": \[\],\ "metadata": {},\ "shippable": false,\ "attributes": \[\],\ "created\_at": 1641481860,\ "unit\_label": "",\ "updated\_at": 1641481860,\ "description": "",\ "package\_dimensions": {\ "width": 0,\ "height": 0,\ "length": 0,\ "weight": 0\ },\ "statement\_descriptor": ""\ },\ "currency": "USD",\ "interval": "day",\ "metadata": {},\ "nickname": "Plan 1050",\ "created\_at": 1641802015,\ "tiers\_mode": "",\ "usage\_type": "licensed",\ "billing\_scheme": "per\_unit",\ "interval\_count": 1,\ "aggregate\_usage": "sum",\ "transform\_usage": {\ "round": "up",\ "divide\_by": 1\ },\ "trial\_period\_days": 0\ },\ "created": 1641802550,\ "metadata": null,\ "quantity": 1\ }\ \], "has\_more": false, "total\_count": 0 }, "billing\_cycle\_anchor": 1641802550, "cancel\_at\_period\_end": false, "current\_period\_start": 1641888950 }, "trigger\_operation\_id": "5df6b51b-0203-4930-a9d0-b51353e31464", "status": "NEW", "created\_at": 1641859559,     "extended\_timestamp": 1641859559742 } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](subscription-webhooks.html#idp315190) * [Next](subscription-canceled-webhook.html) --- # Customer Created Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Customer](customer.html) * [Customer Webhooks](customer-webhooks.html) * Customer Created Webhook * [Prev](customer-webhooks.html) * [Next](customer-deleted-webhook.html) ###### Customer Created Webhook The **CUSTOMER\_CREATED** webhook is sent when a customer is created. [###### Parameters](#idp336211_body) [###### Webhook Header Parameters](#idp336213_body) [###### Webhook Root Parameters](#idp336253_body) [###### Webhook Data Parameters](#idp336326_body) * CUSTOMER\_CREATED Webhook * { "id": "wh\_035d46223922ca1c70f77c9ffcaf5d99", "type": "CUSTOMER\_CREATED", "data": { "id": "cus\_571ef03ba58cb493317b49dfea644bf1", "name": "John Doe", "email": "johndoe@rapyd.net", "ewallet": "ewallet\_e16b6e751207d0a7f26cd228ef078b0b", "discount": null, "metadata": { "merchant\_defined": true }, "addresses": \[\], "created\_at": 1640536833, "delinquent": false, "description": "", "phone\_number": "+14155556666", "subscriptions": null, "invoice\_prefix": "JD-", "business\_vat\_id": "123456666", "payment\_methods": { "url": "/v1/customers/cus\_571ef03ba58cb493317b49dfea644bf1/payment\_methods", "data": \[{\ "id": "card\_b6a12fc24fe700c35a615da034e638dd",\ "name": "John Doe",\ "type": "ua\_visa\_card",\ "image": "https://iconslib.rapyd.net/checkout/ua\_visa\_card.png",\ "last4": "1111",\ "category": "card",\ "metadata": null,\ "acs\_check": "unchecked",\ "cvv\_check": "unchecked",\ "bin\_details": {\ "type": null,\ "brand": null,\ "country": null,\ "bin\_number": "411111"\ },\ "next\_action": "not\_applicable",\ "webhook\_url": "",\ "expiration\_year": "23",\ "expiration\_month": "10",\ "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467",\ "supporting\_documentation": ""\ }\ \], "has\_more": false, "total\_count": 1 }, "default\_payment\_method": "card\_b6a12fc24fe700c35a615da034e638dd" }, "trigger\_operation\_id": "62a6763b-255b-4f48-8960-79b6861891b1", "status": "NEW", "created\_at": 1640536833,     "extended\_timestamp": 1640536833933 } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](customer-webhooks.html) * [Next](customer-deleted-webhook.html) --- # Bank Payout Norway [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payout Method Types](payout-method-types.html) * [EMEA](emea-401604.html) * Bank Payout Norway * [Prev](bank-payout-sweden.html#idp243234) * [Next](bank-payout-norway.html#idp243285) ##### Bank Payout Norway Disburse funds directly to a bank account. | `Enterprise` **no\_ach\_bank** is a new local bank payout method type used for payouts in Norway. A sender can disburse funds into a beneficiary’s bank account in Norway. This payout method supports several banks in the region and allows the beneficiary to be paid in the country's local currency. The benefits for the user include the ability to create payouts through local bank transfers and disburse funds into Norwegian bank accounts. [###### Finding Required Fields for the Payout Method Type](#idp243285_body) You need to find the required fields for each payout method type. For that, you'll use [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields") . Enter **no\_ach\_bank** as the value for the `payout_method_type` path parameter. [###### Requesting a Payout](#idp243292_body) Use [Create Payout](create-payout.html "Create Payout") with the following parameters: Create Payout Request Parameters | | | | --- | --- | | **Body Parameter** | **Description** | | ewallet | Enter the wallet 'id' that you received when you created the company wallet in your sandbox. | | payout\_amount | Enter 100 as the amount received by the beneficiary. | | payout\_method\_type | Enter **no\_ach\_bank** as the payout method type. | | sender\_currency | Enter **USD** as the code for United States Dollar, the sender's currency. | | sender\_country | Enter **US** as the code for the United States, the sender's country. | | beneficiary\_country | Enter **NO** as the code for Norway, the beneficiary's country. | | payout\_currency | Enter **NOK** as the code for Norwegian Krone, the currency received by the beneficiary. | | sender\_entity\_type | Enter ‘individual’ as the type of entity for the sender. | | beneficiary\_entity\_type | Enter ‘individual’ as the type of entity for the beneficiary. | | beneficiary | Enter a `beneficiary object` that has the following fields:

* **company\_name** - company

* **first\_name** - individual

* **last\_name** - individual

* **iban** - individual or company

* **bic\_swift** - individual or company

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | sender | Enter a `sender` object that has the following fields:

* **company\_name** - company

* **country\_of\_incorporation** - company

* **date\_of\_incorporation** - company

* **identification\_value** - company

* **first\_name** - individual

* **last\_name** - individual

* **nationality** - individual

* **date\_of\_birth** - individual

* **identification\_value** - individual

* **identification\_type** - individual

* **address** - individual or company

* **city** - individual or company

* **state** - individual or company

* **country** - individual or company

* **postcode** - individual or company | | description | Enter ‘salary payout - wallet to bank account’ as the description of the payout transaction. | | payout\_options | Enter a `payout_options` object with the following fields:

* **statement\_descriptor** | [###### Create Payout Response](#idp243463_body) [Create Payout](create-payout.html "Create Payout") describes the fields in the response. [###### Local Bank Payout Norway Details](#idp243467_body) | | | | --- | --- | | **Details** | **Description** | | Payout Method Category | bank | | Payout Request String | POMT = no\_ach\_bank | | Country | Norway | | Sender Currency | USD, ISK, GBP, EUR, SGD, HKD, AUD | | Transaction Limits | N/A | | Settlement Timeframe | 3 days | In this section: Search results -------------- No results found * [Prev](bank-payout-sweden.html#idp243234) * [Next](bank-payout-norway.html#idp243285) --- # Payment Completed Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Payment](payment.html) * [Payment Webhooks](payment-webhooks.html) * Payment Completed Webhook * [Prev](payment-captured-webhook.html) * [Next](payment-expired-webhook.html) ###### Payment Completed Webhook The **PAYMENT\_COMPLETED** webhook is sent when funds are received from a payment method. A card payment with `capture` set to **true** receives a **CLO** status immediately after the payment. If the payment method requires the action of a third party to complete the payment process, this webhook is triggered when the last required third-party action is completed. In the sandbox, you can simulate the third-party action and trigger this webhook. Use: * Card payment methods - [Capture Payment](capture-payment.html "Capture Payment") * Non-card payment methods - [Complete Payment](complete-payment-363014.html "Complete Payment") [###### Parameters](#idp285788_body) [###### Webhook Header Parameters](#idp285790_body) [###### Webhook Root Parameters](#idp285830_body) [###### Webhook Data Parameters](#idp285903_body) * PAYMENT\_COMPLETED Webhook * { "id": "wh\_e0afb507504b5eb901449993fadba20f", "type": "PAYMENT\_COMPLETED", "data": { "id": "payment\_0b645b1ee17a5c3ce79e20ff5524966f", "mid": "", "paid": true, "order": null, "amount": 1, "escrow": null, "status": "CLO", "address": null, "dispute": null, "fx\_rate": 1, "invoice": "", "outcome": null, "paid\_at": 1711008868, "refunds": null, "captured": true, "ewallets": \[{\ "amount": 1,\ "percent": 100,\ "ewallet\_id": "ewallet\_c1943cfeda5f98247ab117e5d2648861",\ "refunded\_amount": 0\ }\ \], "metadata": {}, "refunded": false, "auth\_code": null, "flow\_type": "", "created\_at": 1711008868, "error\_code": "", "ewallet\_id": "ewallet\_c1943cfeda5f98247ab117e5d2648861", "expiration": 1711613668, "fixed\_side": "", "is\_partial": false, "description": "", "next\_action": "not\_applicable", "country\_code": "GB", "failure\_code": "", "instructions": \[\], "payment\_fees": null, "redirect\_url": "", "visual\_codes": {}, "cancel\_reason": null, "currency\_code": "EUR", "group\_payment": "", "receipt\_email": "", "textual\_codes": {}, "customer\_token": "cus\_5bee14584a78638ba717e746be62ee01", "payment\_method": "card\_0d83436af31300bf263dd5ef379b8230", "receipt\_number": "", "transaction\_id": "", "failure\_message": "", "initiation\_type": "customer\_present", "original\_amount": 1, "refunded\_amount": 0, "error\_payment\_url": "https://error.rapyd.net", "payment\_method\_data": { "id": "card\_0d83436af31300bf263dd5ef379b8230", "name": "John Doe", "type": "gb\_visa\_card", "image": "", "last4": "1111", "category": "card", "metadata": null, "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": "DEBIT", "brand": "VISA", "level": "CREDIT", "issuer": "JPMORGAN CHASE BANK, N.A.", "country": "US", "bin\_number": "411111" }, "next\_action": "not\_applicable", "webhook\_url": "", "expiration\_year": "25", "expiration\_month": "05", "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467", "supporting\_documentation": "" }, "payment\_method\_type": "gb\_visa\_card", "save\_payment\_method": true, "complete\_payment\_url": "https://complete.rapyd.net", "remitter\_information": {}, "statement\_descriptor": "Doc Team", "merchant\_reference\_id": "", "payment\_method\_options": {}, "merchant\_requested\_amount": null, "merchant\_requested\_currency": null, "payment\_method\_type\_category": "card" }, "trigger\_operation\_id": "77b47127-a209-43ad-9806-90c46e33f950", "status": "NEW", "created\_at": 1711008868,     "extended\_timestamp": 1711008868132 } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. A number for a bank account that is used for international transfers. A server used by [issuing banks](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_issuer) to authenticate card users by [3DS](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_rds) authentication. For card transactions, a service that checks whether the cardholder's billing address matches the address for the cardholder's account. An alphanumeric identifier for financial institutions, also known informally as a [SWIFT](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_swift) code or SWIFT/BIC code. A numeric identifier for financial institutions. It appears as the first four to six digits on a payment card. A unique number for a payment card, usually 14 to 19 digits in length. Also known as a [card number](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_card-number) , [payment card number](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_payment-card-number) or [funding primary account number (FPAN)](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_fpan) . A numeric code printed on the card, consisting of 3 or 4 digits. Use of the code indicates that the person making the transaction has access to the physical card. This value cannot be stored in any way. Also known as [CCV](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_ccv) , [CID](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_cid) , [CSC](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_csc) and [CVC](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_cvc) . A protocol that provides increased security for card-not-present transactions. Rapyd supports version 2.2. Search results -------------- No results found * [Prev](payment-captured-webhook.html) * [Next](payment-expired-webhook.html) --- # Card Added Successfully Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Customer Payment Method](customer-payment-method.html) * [Payment Method Webhooks](payment-method-webhooks.html) * Card Added Successfully Webhook * [Prev](card-added-failure-webhook.html) * [Next](customer-payment-method-created-webhook.html) ###### Card Added Successfully Webhook The **CARD\_ADDED\_SUCCESSFULLY** webhook is sent when adding a card payment method to a customer succeeds. [###### Parameters](#idp341900_body) [###### Webhook Header Parameters](#idp341902_body) [###### Webhook Root Parameters](#idp341942_body) [###### Webhook Data Parameters](#idp342015_body) * CARD\_ADDED\_SUCCESSFULLY * { "id": "wh\_84462ad5194b44529f0fd22744bfb704", "data": { "id": "card\_b75eb80db210ddfbacaacb18583145db", "name": "rapydqa", "type": "gb\_mastercard\_card", "image": "", "last4": "3099", "category": "card", "metadata": {}, "acs\_check": "unchecked", "cvv\_check": "pass", "bin\_details": { "type": "CREDIT", "brand": "MASTERCARD", "level": "GOLD", "country": "DK", "bin\_number": "541303" }, "next\_action": "not\_applicable", "webhook\_url": "", "expiration\_year": "25", "expiration\_month": "08", "fingerprint\_token": "ocfp\_11ECFC3931D40DA681220EC01B2F2B1B", "supporting\_documentation": "" }, "type": "CARD\_ADDED\_SUCCESSFULLY", "status": "NEW", "created\_at": 1670905100,     "extended\_timestamp": 1670905100830, "trigger\_operation\_id": "8b89516f-bca8-473a-bb9e-9a8354ede0d4" } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. A number for a bank account that is used for international transfers. A server used by [issuing banks](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_issuer) to authenticate card users by [3DS](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_rds) authentication. Search results -------------- No results found * [Prev](card-added-failure-webhook.html) * [Next](customer-payment-method-created-webhook.html) --- # Customer Payment Method Created Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Customer Payment Method](customer-payment-method.html) * [Payment Method Webhooks](payment-method-webhooks.html) * Customer Payment Method Created Webhook * [Prev](card-added-successfully-webhook.html) * [Next](payment-method-canceled-webhook.html) ###### Customer Payment Method Created Webhook The **CUSTOMER\_PAYMENT\_METHOD\_CREATED** webhook is sent when a payment method is added to a customer. [###### Parameters](#idp342330_body) [###### Webhook Header Parameters](#idp342332_body) [###### Webhook Root Parameters](#idp342372_body) [###### Webhook Data Parameters](#idp342445_body) * CUSTOMER\_PAYMENT\_METHOD\_CREATED Webhook * { "id": "wh\_90957fbb254942810b1dd7061ff0efe5", "type": "CUSTOMER\_PAYMENT\_METHOD\_CREATED", "data": { "id": "other\_237dbb04acfa1f11e81d721f4d3d11ce", "type": "gb\_trustly\_bank", "image": "", "category": "bank\_redirect", "metadata": { "merchant\_defined": true }, "bic\_swift": "", "next\_action": "not\_applicable", "webhook\_url": "", "account\_last4": "", "supporting\_documentation": "" }, "trigger\_operation\_id": "c7d2b425-8fe8-4dc7-b6e0-52e1be0dede9", "status": "NEW", "created\_at": 1655293386,   "extended\_timestamp": 1655293386305 } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](card-added-successfully-webhook.html) * [Next](payment-method-canceled-webhook.html) --- # Create Address [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Address](address.html) * Create Address * [Prev](address.html) * [Next](create-address.html#idp338281) ##### Create Address Create an address. [###### Parameters](#idp338285_body) [###### Request Header Parameters](#idp338287_body) [###### Request Body Parameters](#idp338347_body) [###### Response Parameters](#idp338427_body) ###### Code Samples * * .Net Core * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var requestObj = new { name = "John Doe", line\_1 = "123 State Street", line\_2 = "Apt. 34", line\_3 = "", city = "Anytown", district = "", canton = "", state = "NY", country = "US", zip = "12345", phone\_number = "12125559999", metadata = new { merchant\_defined = true } }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/addresses", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { name: 'John Doe', line\_1: '123 State Street', line\_2: 'Apt. 34', line\_3: '', city: 'Anytown', district: '', canton: '', state: 'NY', country: 'US', zip: '12345', phone\_number: '12125559999', metadata: { merchant\_defined: true } }; const result = await makeRequest('POST', '/v1/addresses', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ "name" => "John Doe",\ "line\_1" => "123 State Street",\ "line\_2" => "Apt. 34",\ "line\_3" => "",\ "city" => "Anytown",\ "district" => "",\ "canton" => "",\ "state" => "NY",\ "country" => "US",\ "zip" => "12345",\ "phone\_number" => "12125559999",\ "metadata" => array(\ "merchant\_defined" => true\ )\ \]; try { $object = make\_request('post', '/v1/addresses', $body); var\_dump($object); } catch(Exception $e) { echo "Error =>$e"; } ?> * * Python * from pprint import pprint from utilities import make\_request address = { "name": "John Doe", "line\_1": "123 State Street", "line\_2": "Apt. 34", "line\_3": "", "city": "Anytown", "district": "", "canton": "", "state": "NY", "country": "US", "zip": "12345", "phone\_number": "12125559999", "metadata": { "merchant\_defined": True } } result = make\_request(method='post', path='/v1/addresses', body=address) pprint(result) * /v1/addresses * Create Address * curl -X post https://sandboxapi.rapyd.net/v1/addresses -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "name": "John Doe", "line\_1": "123 State Street", "line\_2": "Apt. 34", "line\_3": "", "city": "Anytown", "district": "", "canton": "", "state": "NY", "country": "US", "zip": "12345", "phone\_number": "12125559999", "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "74832dc9-d94d-46cf-8a55-bdad72ceb24e" }, "data": { "id": "address\_71f1048a5837feb31b594f9d3d9b6623", "name": "John Doe", "line\_1": "123 State Street", "line\_2": "Apt. 34", "line\_3": "", "city": "Anytown", "state": "NY", "country": "US", "zip": "12345", "phone\_number": "12125559999", "metadata": { "merchant\_defined": true }, "canton": "", "district": "", "created\_at": 1551689479 } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](address.html) * [Next](create-address.html#idp338281) --- # Plan Errors [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Plan](plan.html) * Plan Errors * [Prev](delete-plan.html) * [Next](subscription-364807.html) ###### Plan Errors | Error Code | Description | | --- | --- | | BILLING\_SCHEME\_SHOULD\_BE\_TIERED | The request tried to create a plan, but the request contains tiers and the 'billing\_scheme' body parameter is not set to 'tiered'. The request was rejected. Corrective action: Set 'billing\_scheme' to 'tiered' or remove the tiers. | | ERROR\_CREATE\_PLAN | The request tried to create a plan, but the 'type' field of a product is set to 'goods'. The request was rejected. Corrective action: Add only products that have 'type' set to 'service'. | | ERROR\_CREATE\_PLAN\_INVALID\_PRODUCT\_TYPE | The request tried to create a plan, but the 'type' field of a product is set to 'goods'. The request was rejected. Corrective action: Add only products that have 'type' set to 'services'. | | ERROR\_CREATE\_PLAN\_MISSING\_TIERS\_OBJECT | The request tried to create a plan with 'billing\_scheme' set to 'tiered', but the request does not define any tiers. The request was rejected. Corrective action: Set the 'tiers' object to contain one or more tiers. | | ERROR\_CREATE\_PLAN\_MISSING\_TOP\_TIER | The request tried to create a plan with 'billing\_scheme' set to 'tiered', but the top tier was not defined. The request was rejected. Corrective action: Inside the 'tiers' object, for the top tier, set 'up\_to' to 'inf'. | | ERROR\_CREATE\_PLAN\_PRODUCT\_NOT\_ACTIVE | The request tried to create a plan using a product that is not available for purchase. The request was rejected. Corrective action: Use 'Update Product' to set 'active' to true. | | ERROR\_CREATE\_PLAN\_TIER\_PARAMETERS\_NOT\_VALID | The request tried to create a plan with 'billing\_scheme' set to 'tiered', but the value for one of the fields in a tier object was not valid. The request was rejected. Corrective action: Set 'amount' and 'flat\_amount' to a positive decimal number, and set 'up\_to' to 'inf' or a positive integer. | | ERROR\_DELETE\_PLAN | The request tried to delete a plan, but the operation failed. Corrective action: Determine whether the plan was already deleted, and why there were multiple requests to delete it. | | ERROR\_GET\_PLAN | The request tried to retrieve a plan, but the plan was not found. The request was rejected. Corrective action: Use a valid plan ID. | | ERROR\_PLAN\_CURRENCY\_CODE\_DOES\_NOT\_MATCH | The request tried to create a plan, but the currency of the subscription did not match the currency of all subscription items. The request was rejected. Corrective action: Add only plans that have the same currency as the subscription. | | ERROR\_PLAN\_INTERVAL\_COUNT\_NOT\_VALID | The request tried to create or update a plan, but the interval was defined for more than one year. The request was rejected. Corrective action: Provide correct values for 'interval' and 'interval\_count' so that the defined interval is one year or less. | | ERROR\_PLAN\_TRIAL\_PERIOD\_DAYS\_DOES\_NOT\_MATCH | The request tried to create a plan, but the 'trial\_period\_days' field for the subscription did not match the 'trial\_period\_days' of all subscription items. The request was rejected. Corrective action: Add only plans that have the same 'trial\_period\_days' as the subscription, or change 'trial\_period\_days' in the relevant plans to match the value in the subscription. | | ERROR\_UPDATE\_PLAN\_INVALID\_PRODUCT\_TYPE | The request tried to update a plan, but the 'type' field of a product is set to 'goods'. The request was rejected. Corrective action: Add only products that have 'type' set to 'service'. | | INVALID\_AGGREGATE\_USAGE | The request tried to create a plan, but the value of the 'aggregate\_usage' body parameter was not recognized. The request was rejected. Corrective action: Set 'aggregate\_usage' to one of the following values: 'max', 'sum', 'last\_during\_period', or 'last\_ever'. | | INVALID\_AMOUNT\_AND\_TIERS | The request tried to create a plan, but the 'amount' and 'tiers' body parameters were both set. The request was rejected. Corrective action: Set 'amount' or 'tiers', but not both. | | INVALID\_BILLING\_SCHEME | The request tried to create a plan, but the value of the 'billing\_scheme' body parameter was unset or not recognized. The request was rejected. Corrective action: Set 'billing\_scheme' to 'per\_unit' or 'tiered'. | | INVALID\_PLAN\_AND\_PRODUCT | The request attempted an operation that requires a plan, but the plan was not found. The request was rejected. Corrective action: Use the ID of a valid plan. | | INVALID\_PLAN\_ID | The request tried to retrieve a plan, but the plan was not found. The request was rejected. Corrective action: Use a valid plan ID. | | INVALID\_PLAN\_INTERVAL | The request tried to create a plan or a subscription item. In the case of a plan, the 'interval' body parameter was not one of the following values: 'day', 'week', 'month', 'year'. In the case of a subscription item, the interval in the subscription item must be the same as the interval in the subscription. The request was rejected. Corrective action: Choose a correct value for 'interval', and make sure the intervals in the subscription and the subscription item are the same. | | INVALID\_TIERS | The request tried to create a plan, but one of the 'tier' objects failed to define 'amount' and 'up\_to'. The request was rejected. Corrective action: Define the 'amount' and 'up\_to' fields for each 'tier' object. | | INVALID\_TIERS\_MODE | The request tried to create a plan, but the value for the 'tiers\_mode' body parameter was not recognized. The request was rejected. Corrective action: Set 'tiers\_mode' to one of the following values: 'graduated', 'volume'. | | INVALID\_TRANSFORM\_USAGE | The request tried to create a plan, but the values for the fields of the 'transform\_usage' object were not found or not recognized. The request was rejected. Corrective action: Set 'divide\_by' to an integer and 'round' to 'up' or 'down'. | | INVALID\_TRIAL\_PERIOD\_DAYS | The request tried to create or update a plan, but the value of the 'trial\_period\_days' body parameter was not recognized. The request was rejected. Corrective action: Set 'trial\_period\_days' to a positive integer. If there is no free trial, do not set this parameter. | | INVALID\_USAGE\_TYPE | The request tried to create a plan, but the value of the 'usage\_type' body parameter was not recognized. The request was rejected. Corrective action: Set 'usage\_type' to one of the following values: 'metered', 'licensed'. | In this section: Search results -------------- No results found * [Prev](delete-plan.html) * [Next](subscription-364807.html) --- # Product [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * Product * [Prev](subscription.html#UUID-cd8591ec-a6e3-4ea7-08d1-f5b515199e2e_section-idm4614408696299233900795981128) * [Next](create-product.html) ##### Product A product or service for use with Rapyd Collect. A product has one of the following types: * **Goods** - A product of type **goods** is attached to one or more SKUs that represent items of physical inventory. A product with multiple SKUs might be a promotional bundle of different kinds of products. For example, a bottle of wine that comes with a special collector's glass. * **Services** - A product of type **service** is attached to a plan that describes the pricing structure. The plan is attached to a subscription. See [Subscription](subscription-364807.html "Subscription") . Methods * [Create Product](create-product.html "Create Product") * [Update Product](update-product.html "Update Product") * [List Products](list-products.html "List Products") * [Retrieve Product](retrieve-product.html "Retrieve Product") * [Delete Product](delete-product.html "Delete Product") Errors * [Product Errors](product-errors.html "Product Errors") In this section: Search results -------------- No results found * [Prev](subscription.html#UUID-cd8591ec-a6e3-4ea7-08d1-f5b515199e2e_section-idm4614408696299233900795981128) * [Next](create-product.html) --- # Hosted Save Card Details Page [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Collect](rapyd-collect.html) * [Rapyd Checkout Overview](rapyd-checkout-overview.html) * Hosted Save Card Details Page * [Prev](save-card-details-with-rapyd-checkout.html#idp217992) * [Next](hosted-save-card-details-page.html#idp218081) ##### Hosted Save Card Details Page A secured page to save your card details. The Hosted Save Card Details page allows you to securely store your customer’s card information. The Save Card Details page tokenizes the card details so that sensitive payment information is handled according to PCI-DSS standards. Rapyd conducts a $0 auth to verify the card. Saving card details can enable a more streamlined payment experience. Your customer can add, save or delete multiple cards on file. You can use the saved payment information for future customer payments. [###### Hosted Save Card Details Page Example](#idp218081_body) 1. Enter your card information. ![hosted-save-card-details-flow-1.png](image/16763ca30a61ba.png) 2. Click **Save Card**. ![hosted-save-card-details-flow-2.png](image/16763ca30ae913.png) 3. Complete 3DS Verification if required. 4. Redirect to the card management page. ![hosted-save-card-details-flow-3.png](image/16763ca30b8a56.png) 5. Click **\+ Add New Card** to save the details of additional cards. 6. (Optional) Click the **Delete** icon next to the card number to delete a saved card. ![hosted-save-card-details-flow-4.png](image/16763ca30c148f.png) 7. Click **Close** to exit the hosted page. [###### Hosted Save Card Details Page Workflow](#idp218114_body) ![hosted-save-card-details-flow-5.png](image/16763ca30cab10.png) 1. You request Rapyd to generate a Hosted Save Card Details Page. 2. Rapyd processes your request and sends the response with the redirect URL. 3. You display the redirect URL to the customer. 4. The customer saves their card details on the hosted page. [###### Create Card Token Message Sequences](#idp218128_body) The message sequence diagrams below describe how information is exchanged between Rapyd, the merchant, and the merchant's customers. Create Card Token ![create-card-token-without-3ds.svg](image/16763ca30d53cf.svg) Create Card Token With 3DS ![create-card-token-with-3ds.svg](image/16763ca30dda20.svg) [###### Card Token Statuses](#idp218139_body) The finite state diagram below summarizes the statuses of card token hosted pages. ![hosted-page.svg](image/16763ca30eab95.svg) Description of Statuses | Status | Description | | --- | --- | | NEW | New - The hosted page for the card token was created. | | DON | Done - The hosted page was completed. The card token has been added to the customer profile. | | EXP | Expired - The hosted page for the card token has expired. | [###### How the Hosted Save Card Details Page Works](#idp218172_body) You need to complete the following steps in order to generate a Hosted Save Card Details Page: 1. [Create a Customer](create-customer.html "Create Customer") (API Integration or via the Client Portal) 2. Generate a Hosted Save Card Details Page (API Integration or via the Client Portal) [###### Generating the Save Card Details Page](#idp218181_body) Description of Body Parameters See [Create Card Token](create-card-token.html "Create Card Token") for additional details about the parameters. | Body Parameter | Required | Description | | --- | --- | --- | | country | yes | The two-letter ISO 3166-1 ALPHA-2 code for the country. | | currency | no | When specified in the request, defines a currency that is not the country's default currency. When not specified in the request, the country's default currency. Three-letter ISO 4217 code. | | customer | yes | ID of the customer, a string starting with **cus\_**. | ###### Generate Hosted Save Card Details Page Request * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/hosted/collect/card // Message body: { "country": "US", "currency": "USD", "customer": "cus\_ecfab8b87e2fa11d66b95cc1f2c94037" } ###### Generate Hosted Save Card Details Page Response [Create Card Token](create-card-token.html "Create Card Token") describes the fields in the response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "e303abfa-f6c5-4906-b002-a1afdd4b1ee1" }, "data": { "id": "hp\_card\_915d39ecc38cd02cd0c29d13ea8dc94e", "status": "NEW", "cancel\_url": "https://www.rapyd.net", "complete\_url": "https://www.rapyd.net", "language": null, "merchant\_color": null, "merchant\_logo": null, "merchant\_website": "https://www.rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "N/A", "page\_expiration": 1708557501, "redirect\_url": "https://sandboxhosted.rapyd.net/collect/card?token=hp\_card\_915d39ecc38cd02cd0c29d13ea8dc94e", "category": "card", "country": "US", "currency": "USD", "customer": "cus\_ecfab8b87e2fa11d66b95cc1f2c94037", "payment\_method\_type": null, "payment\_params": { "complete\_payment\_url": null, "error\_payment\_url": null }, "billing\_address\_collect": false, "customer\_card\_payment\_methods": null } } [###### Hosted Save Card Details Page vs Toolkit Integration](#idp218244_body) | | Hosted | Toolkit | | --- | --- | --- | | **API Integration** | | | | **Minimal Developer Efforts Required for Integration** | | | | **Additional Developer Efforts Required for Integration** | | | | **Customizable Page** (add a logo, change the main button’s color, website URLs, customer support details). | | | | **Users stay on your webpage** | | | | **Users are redirected to a secure Rapyd hosted page** | | | [###### Save Card Details Toolkit Integration](#idp218307_body) The Rapyd Toolkit Integration has been specially designed to embed directly into your website to give your business more control over the entire experience. **Step 1** - Before embedding the iframe into your page, follow steps 1, 2 and 3 in the section above to create your Save Card Details Page. **Step 2** - In step 3 (when generating the page), make sure to also specify a **complete\_url** and **cancel\_url** | Name | Type | Description | | --- | --- | --- | | complete\_url | string | URL where the customer is redirected after pressing **Close** to exit the hosted page. | | cancel\_url | string | URL where the customer is redirected after pressing **Back** to **Website** to exit the hosted page. | **Step 3** - Once you create the Save Card Details page, in the response you’ll receive the ID of the page object, a string starting with ‘hp\_card\_’, (for example: id: "hp\_card\_bd334669c8a80bc68c124b144c350b7f"). **Step 4** - Add the following code to your page: ### Note To run this method in the [sandbox](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_sandbox "Sandbox") , use the following code: Add a
tag with id="rapyd-toolkit":
Initialize the Save Card Details Page object with the following fields: * * JavaScript * let toolkit = new RapydToolkit({ button\_text: "Save", /\* Text that appears on the Save button. String. Maximum length is 16 characters. Default is "Save". Optional. \*/ button\_color: "blue", /\* Color of the 'Save' button. String. Standard CSS color name or hexadecimal code such as #323fff. Default is the color that is returned in the 'merchant\_color' field of the response to 'Save Card Details Page'. Optional.\*/ id: "hp\_card\_bd334669c8a80bc68c124b144c350b7f", /\* ID of the 'Save Card Details Page' response. String. Required.\*/ close\_on\_complete: true, /\* Causes the embedded Rapyd Toolkit window to close when the action is complete. Boolean. Default is 'true'. Optional.\*/ page\_type: “card\_token” /\* Mandatory for save card details page Default is "collection". \*/ style: { global: { fonts: \[\ "https://fonts.googleapis.com/css2?family=Mulish:wght@200&display=swap",\ {\ family: 'myCustomFont',\ src: '/fonts/myCustomFontRegular.woff2',\ fontWeight: 400\ },\ {\ family: 'myCustomFont',\ src: '/fonts/myCustomFontBold.woff2',\ fontWeight: 700\ }\ \] }, save: { base: { backgroundColor: '#0000FF', // If passed for the 'Save' element, it will override the button\_color field. fontFamily: 'myCustomFont', } } }); Call display Toolkit() to display the Save Card Details Page: toolkit.displayToolkit(); Optional step: If close\_on\_complete is set to false, call checkout.closeCheckout() to close the Rapyd Checkout Toolkit window. toolkit.closeToolkit(); Insert your code that runs when the following events occur. Use your code to read the event field in the 'window' object. * * JavaScript * window.addEventListener('onSaveCardDetailsSuccess', (event) => { console.log(event.detail) // Returns ‘Payment’ object. // Client code. }) window.addEventListener('onSaveCardDetailsFailure', (event) => { console.error(event.detail.error) // Returns an error message from the API. // Client code. window.addEventListener('onLoading', (event) => { console.log(event.detail.loading) // Returns true or false depending on the loading state // Client code. * If the card is successfully saved, the customer is returned to your website, according to the code you entered for the **onSaveCardDetailsSuccess** event. * If the process fails, the customer is returned to your website, according to the code you entered for the **onSaveCardDetailsFailure** event. ### 3D Secure flow: In case the customer is required to go through a 3DS authentication process, the required URL will be provided in the redirect\_url field (part of the payment object). Make sure to redirect the customer to this page. In this section: In Rapyd, the sandbox environment provides most of the functionality of the production environment, without using real money. Interested persons can use the sandbox to explore Rapyd's product offering or to test software integrations with Rapyd's API. Search results -------------- No results found * [Prev](save-card-details-with-rapyd-checkout.html#idp217992) * [Next](hosted-save-card-details-page.html#idp218081) --- # Payment Failed Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Payment](payment.html) * [Payment Webhooks](payment-webhooks.html) * Payment Failed Webhook * [Prev](payment-expired-webhook.html) * [Next](payment-reversed-webhook.html) ###### Payment Failed Webhook The **PAYMENT\_FAILED** webhook is sent when Rapyd attempts to collect from the customer’s designated payment method, and the collection attempt fails. [###### Parameters](#idp288866_body) [###### Webhook Header Parameters](#idp288868_body) [###### Webhook Root Parameters](#idp288908_body) [###### Webhook Data Parameters](#idp288981_body) * PAYMENT\_FAILED Webhook * { "id": "wh\_6d0b1efc39424f33556a300434cccc74", "type": "PAYMENT\_FAILED", "data": { "id": "payment\_7e88b177125a02639ce2fc3bfd890aca", "mid": "", "paid": false, "order": null, "amount": 5, "escrow": null, "status": "ERR", "address": null, "dispute": null, "fx\_rate": 1, "invoice": "", "outcome": null, "paid\_at": 0, "refunds": null, "captured": true, "ewallets": \[{\ "amount": 5,\ "percent": 100,\ "ewallet\_id": "ewallet\_56e3911e5fec5db8e0a36e1212bf4576",\ "refunded\_amount": 0\ }\ \], "metadata": {}, "refunded": false, "auth\_code": null, "flow\_type": "", "created\_at": 0, "error\_code": "ERROR\_3DS\_AUTHENTICATION\_FAILURE", "ewallet\_id": "ewallet\_56e3911e5fec5db8e0a36e1212bf4576", "expiration": 0, "fixed\_side": "", "is\_partial": false, "description": "testing", "capture": true, "next\_action": "not\_applicable", "country\_code": "AT", "failure\_code": "ERROR\_3DS\_AUTHENTICATION\_FAILURE", "instructions": {}, "payment\_fees": null, "redirect\_url": "", "visual\_codes": {}, "cancel\_reason": null, "currency\_code": "USD", "group\_payment": "", "receipt\_email": "", "textual\_codes": {}, "customer\_token": "", "payment\_method": "card\_401e2852143c77ca1326f310a7e2d56b", "receipt\_number": "", "transaction\_id": "", "failure\_message": "A message element required is missing from the message (eci)", "initiation\_type": "customer\_present", "original\_amount": 5, "refunded\_amount": 0, "error\_payment\_url": "http://www.rapyd.net/error.html", "payment\_method\_data": { "id": "card\_401e2852143c77ca1326f310a7e2d56b", "name": "Jon Doe", "type": "at\_mastercard\_card", "image": "", "last4": "0119", "category": "card", "metadata": null, "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": "CREDIT", "brand": "MASTERCARD", "level": "PLATINUM", "country": "US", "bin\_number": "523929" }, "next\_action": "not\_applicable", "webhook\_url": "", "expiration\_year": "29", "expiration\_month": "04", "fingerprint\_token": "ocfp\_11ECFC3994C38A7281220EC01B2F2B1B", "supporting\_documentation": "" }, "payment\_method\_type": "", "complete\_payment\_url": "http://www.rapyd.net", "remitter\_information": {}, "statement\_descriptor": "Doc Team", "authentication\_result": { "eci": null, "result": "N", "version": "2.2.0" }, "merchant\_reference\_id": "", "payment\_method\_options": { "3d\_required": true }, "merchant\_requested\_amount": null, "merchant\_requested\_currency": null, "payment\_method\_type\_category": "" }, "trigger\_operation\_id": "9846cf13-6983-4888-88d4-c0b378dec372", "status": "NEW", "created\_at": 1675341357,     "extended\_timestamp": 1675341357981 } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. A number for a bank account that is used for international transfers. A server used by [issuing banks](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_issuer) to authenticate card users by [3DS](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_rds) authentication. For card transactions, a service that checks whether the cardholder's billing address matches the address for the cardholder's account. An alphanumeric identifier for financial institutions, also known informally as a [SWIFT](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_swift) code or SWIFT/BIC code. A numeric identifier for financial institutions. It appears as the first four to six digits on a payment card. A unique number for a payment card, usually 14 to 19 digits in length. Also known as a [card number](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_card-number) , [payment card number](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_payment-card-number) or [funding primary account number (FPAN)](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_fpan) . A numeric code printed on the card, consisting of 3 or 4 digits. Use of the code indicates that the person making the transaction has access to the physical card. This value cannot be stored in any way. Also known as [CCV](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_ccv) , [CID](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_cid) , [CSC](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_csc) and [CVC](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_cvc) . A protocol that provides increased security for card-not-present transactions. Rapyd supports version 2.2. Search results -------------- No results found * [Prev](payment-expired-webhook.html) * [Next](payment-reversed-webhook.html) --- # Customer Updated Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Customer](customer.html) * [Customer Webhooks](customer-webhooks.html) * Customer Updated Webhook * [Prev](customer-deleted-webhook.html) * [Next](customer-errors.html) ###### Customer Updated Webhook The **CUSTOMER\_UPDATED** webhook is sent when a customer is updated. [###### Parameters](#idp337505_body) [###### Webhook Header Parameters](#idp337507_body) [###### Webhook Root Parameters](#idp337547_body) [###### Webhook Data Parameters](#idp337620_body) * CUSTOMER\_UPDATED Webhook * { "id": "wh\_0d2bf25d7d59bf95396e65f6230943e8", "type": "CUSTOMER\_UPDATED", "data": { "id": "cus\_571ef03ba58cb493317b49dfea644bf1", "name": "John Doe", "email": "johndoe@rapyd.net", "ewallet": "ewallet\_e16b6e751207d0a7f26cd228ef078b0b", "discount": null, "metadata": { "merchant\_defined": true }, "addresses": \[\], "created\_at": 1640536833, "delinquent": false, "description": "", "phone\_number": "+14155556666", "subscriptions": null, "invoice\_prefix": "JD-", "business\_vat\_id": "123456766", "payment\_methods": { "url": "/v1/customers/cus\_571ef03ba58cb493317b49dfea644bf1/payment\_methods", "data": \[{\ "id": "card\_b6a12fc24fe700c35a615da034e638dd",\ "name": "John Doe",\ "type": "ua\_visa\_card",\ "image": "https://iconslib.rapyd.net/checkout/ua\_visa\_card.png",\ "last4": "1111",\ "category": "card",\ "metadata": null,\ "acs\_check": "unchecked",\ "cvv\_check": "unchecked",\ "bin\_details": {\ "type": null,\ "brand": null,\ "country": null,\ "bin\_number": "411111"\ },\ "next\_action": "3d\_verification",\ "webhook\_url": "",\ "expiration\_year": "23",\ "expiration\_month": "10",\ "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467",\ "supporting\_documentation": ""\ }\ \], "has\_more": false, "total\_count": 1 }, "default\_payment\_method": "card\_b6a12fc24fe700c35a615da034e638dd" }, "trigger\_operation\_id": "507ddf34-48d1-4595-a1eb-fb605d2b4357", "status": "NEW", "created\_at": 1640537013,     "extended\_timestamp": 1640537013831 } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](customer-deleted-webhook.html) * [Next](customer-errors.html) --- # Card Added Failure Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Customer Payment Method](customer-payment-method.html) * [Payment Method Webhooks](payment-method-webhooks.html) * Card Added Failure Webhook * [Prev](payment-method-webhooks.html) * [Next](card-added-successfully-webhook.html) ###### Card Added Failure Webhook The **CARD\_ADDED\_FAILURE** webhook is sent when adding a card payment method to a customer fails. [###### Parameters](#idp341470_body) [###### Webhook Header Parameters](#idp341472_body) [###### Webhook Root Parameters](#idp341512_body) [###### Webhook Data Parameters](#idp341585_body) * CARD\_ADDED\_FAILURE Webhook * { "id": "wh\_5f64b6fc3fdd73c35b072e3b0a4bd996", "error\_code":"ERROR\_PROCESSING\_CARD \[51\]", "data": { "id": "card\_cbda68b6410bcb0a0ad0211170142c55", "name": "John Doe", "type": "at\_mastercard\_card", "image": "", "last4": "0101", "category": "card", "metadata": {}, "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": "CREDIT", "brand": "MASTERCARD", "country": "US", "bin\_number": "523929" }, "next\_action": "not\_applicable", "webhook\_url": "", "failure\_code": "", "failure\_reason": "", "expiration\_year": "22", "expiration\_month": "04", "fingerprint\_token": "ocfp\_cac4c6d353453a7f009afca5173f5def", "supporting\_documentation": "" }, "type": "CARD\_ADDED\_FAILURE", "status": "NEW", "created\_at": 1639272531,     "extended\_timestamp": 1639272531384, "trigger\_operation\_id": "a6881f23-e796-459e-9f93-b59617021389" } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. A number for a bank account that is used for international transfers. A server used by [issuing banks](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_issuer) to authenticate card users by [3DS](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_rds) authentication. Search results -------------- No results found * [Prev](payment-method-webhooks.html) * [Next](card-added-successfully-webhook.html) --- # Payment Succeeded Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Payment](payment.html) * [Payment Webhooks](payment-webhooks.html) * Payment Succeeded Webhook * [Prev](payment-reversed-webhook.html) * [Next](payment-updated-webhook.html) ###### Payment Succeeded Webhook The **PAYMENT\_SUCCEEDED** webhook is sent when a [Create Payment](create-payment.html "Create Payment") request has been successfully received on the Rapyd platform. The `status` field indicates the status of the actual payment. In the case of card payments that trigger the 3DS challenge flow, the status will be **ACT** and the actual result of the payment will not be known until a later point in time. [###### Parameters](#idp291953_body) [###### Webhook Header Parameters](#idp291955_body) [###### Webhook Root Parameters](#idp291995_body) [###### Webhook Data Parameters](#idp292068_body) * PAYMENT\_SUCCEEDED Webhook * { "id": "wh\_553e242e4e54ccc75c21b20710df0902", "data": { "id": "payment\_56f3eb8ec543a3962ce112b4f03da9ae", "mid": "", "paid": false, "order": null, "amount": 0, "escrow": null, "status": "ACT", "address": null, "dispute": null, "fx\_rate": 1, "invoice": "", "outcome": null, "paid\_at": 0, "refunds": null, "captured": false, "ewallets": \[{\ "amount": 10,\ "percent": 100,\ "ewallet\_id": "ewallet\_6a6669f4febd8b2eb9c5d77e7161a679",\ "refunded\_amount": 0\ }\ \], "metadata": {}, "refunded": false, "auth\_code": null, "flow\_type": "", "created\_at": 1689859010, "error\_code": "", "ewallet\_id": "ewallet\_6a6669f4febd8b2eb9c5d77e7161a679", "expiration": 1689859548, "fixed\_side": "", "is\_partial": false, "description": "testing", "next\_action": "3d\_verification", "country\_code": "IT", "failure\_code": "", "instructions": \[\], "payment\_fees": null, "redirect\_url": "https://qacheckout.rapyd.net/3ds-payment?token=payment\_56f3eb8ec543a3962ce112b4f03da9ae", "visual\_codes": {}, "cancel\_reason": null, "currency\_code": "USD", "group\_payment": "", "receipt\_email": "", "textual\_codes": {}, "customer\_token": "cus\_0335a29669a3f4337317d6e1441df763", "payment\_method": "card\_27a4c2f05d9ebd1700f5338e155c1ced", "receipt\_number": "", "transaction\_id": "", "failure\_message": "", "initiation\_type": "customer\_present", "original\_amount": 10, "refunded\_amount": 0, "error\_payment\_url": "https://support.rapyd.net/hc/en-us", "payment\_method\_data": { "id": "card\_27a4c2f05d9ebd1700f5338e155c1ced", "name": "Auto Test", "type": "it\_visa\_card", "image": "", "last4": "1111", "category": "card", "metadata": null, "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": "CREDIT", "brand": "VISA", "level": null, "issuer": "JPMORGAN CHASE BANK, N.A.", "country": "US", "bin\_number": "411111" }, "next\_action": "3d\_verification", "webhook\_url": "", "expiration\_year": "24", "expiration\_month": "12", "fingerprint\_token": "ocfp\_11ECFC396977BB4E81220EC01B2F2B1B", "supporting\_documentation": "" }, "payment\_method\_type": "it\_visa\_card", "save\_payment\_method": true, "complete\_payment\_url": "https://www.rapyd.net", "remitter\_information": {}, "statement\_descriptor": "card\_tokenization\_with", "merchant\_reference\_id": "", "payment\_method\_options": { "3d\_required": true }, "merchant\_requested\_amount": null, "merchant\_requested\_currency": null, "payment\_method\_type\_category": "card" }, "type": "PAYMENT\_SUCCEEDED", "status": "NEW", "created\_at": 1689859010,     "extended\_timestamp": 1689859010395, "trigger\_operation\_id": "c3d1ac9d-139b-4c55-8da4-b1c32cf88fa9" } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. A number for a bank account that is used for international transfers. A server used by [issuing banks](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_issuer) to authenticate card users by [3DS](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_rds) authentication. For card transactions, a service that checks whether the cardholder's billing address matches the address for the cardholder's account. An alphanumeric identifier for financial institutions, also known informally as a [SWIFT](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_swift) code or SWIFT/BIC code. A numeric identifier for financial institutions. It appears as the first four to six digits on a payment card. A unique number for a payment card, usually 14 to 19 digits in length. Also known as a [card number](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_card-number) , [payment card number](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_payment-card-number) or [funding primary account number (FPAN)](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_fpan) . A numeric code printed on the card, consisting of 3 or 4 digits. Use of the code indicates that the person making the transaction has access to the physical card. This value cannot be stored in any way. Also known as [CCV](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_ccv) , [CID](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_cid) , [CSC](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_csc) and [CVC](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_cvc) . A protocol that provides increased security for card-not-present transactions. Rapyd supports version 2.2. Search results -------------- No results found * [Prev](payment-reversed-webhook.html) * [Next](payment-updated-webhook.html) --- # Merchant Reconciliation Report [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Reports](reports-367106.html) * Merchant Reconciliation Report * [Prev](failed-payments-report.html#idp264681) * [Next](merchant-reconciliation-report.html#idp264749) #### Merchant Reconciliation Report The **Merchant Reconciliation Report** lists all of the transactions for the merchant that were processed and closed. You can download the current **Merchant Reconciliation Report** version 1.8. See [Downloading a Financial Report](downloading-a-financial-report.html "Downloading a Financial Report") . The report is provided in the form of a CSV file. To read it, open it in a spreadsheet. There are a few different types of Reconciliation reports: * **Merchant Reconciliation Report** - Lists all transactions processed and closed for the given 24 hour period. * **Merchant Reconciliation Report Beta** - Same as the Merchant Reconciliation Report, but temporarily released when new fields are released (beta) before they are merged into the main Merchant Reconciliation Report. * **Merchant Reconciliation by Settlement Report** - Lists all transactions processed and closed but organized by settlement rather than a given time period. See Report Settings to change the reconciliation report type. * **Monthly Merchant Reconciliation Report** - Monthly overview report of the Merchant Reconciliation Report as described. ### Deducting Fees and Reserve Funds Rapyd may deduct fees and funds for your reserve balance as funds are collected into your account balance. Fees will always be deducted from the available balance. Collecting funds as they arrive will protect against a negative balance in your account. For more information on the available reserve and receive balance descriptions, refer to [Balances](balances.html "Balances") . [##### Transaction Types](#idp264749_body) The **Merchant Reconciliation Report** provides reconciliation information for the following transaction types: | Product | Transaction Types | | --- | --- | | Collect | Payments, refunds, payment reversals and chargebacks | | Disburse | Payouts and payout reversals | | Card Issuing | Issued card transactions | | Issued Bank Account | Issued bank account deposits | | Identity Verification | IDV requests | | Wallet | Wallet to Wallet Transfer | [##### File Version](#idp264791_body) Current file format version is _1.8_ [##### Reporting Frequency](#idp264795_body) Depending on the merchant activity, the report is generated on a daily basis at 2:00 AM UTC. A consolidated monthly report is also generated, summarizing all transactions **closed** throughout the previous calendar month. The monthly report is generated at 2:00AM UTC, on the 1st of each month, covering the activity done in the previous calendar month. [##### File Structure](#idp264801_body) ###### Header Format Line one the CSV file contains the following information: | Field | Value | | --- | --- | | Report Title | Rapyd Merchant Reconciliation Report | | Version | Report version number | | Merchant | Alias of the merchant | | From | the string "From" | | Start date | Period start date | | To | the string "To" | | End date | Period end date | [##### Transaction Records](#idp264849_body) The following table contains the column title of the field, description and value format. Each line item record in the CSV file contains all details pertaining to a single transaction processed by Rapyd. [##### Merchant Reconciliation](#idp264853_body) | | | | | --- | --- | --- | | Column | Description | Value Type/Format | | Transaction Type | Will be set as one of the following for the corresponding transaction(s): payment refund Payment\_reversal Chargeback Payouts payout reversals Issued card transactions Issued bank account deposits IDV requests Wallet to Wallet Transfer | string | | Rapyd Transaction ID | ID of the transaction on the Rapyd platform. Use this as a reference when contacting our support team | string | | Rapyd Reference ID | The unique token created when creating the transaction on the Rapyd platform.

**Note**: multiple transactions can share the same token in case payments are split between multiple wallets | string | | Merchant Reference ID | The unique ID referencing the merchant used when creating the transaction on the Rapyd platform.

This is an optional field and is provided to assist in reconciliation efforts.

**Note**: multiple transactions can share the same reference ID in case payments are split between multiple wallets | string | | Transaction Method Type | Name of the payment or payout method type used when creating the transaction

Issued Card: The type of hardware type used for deducting funds, i.e. 'vPOS', 'PPOS' or 'ATM'

Empty for virtual accounts or bank accounts | string | | Country | The country where the funds of the transaction were collected from.

Payout and payout reversal: The country of the beneficiary (where the funds of the payout are sent to).

Issued bank account deposits: The country of the issued accounts.

Issued card transactions: The country where the transaction was processed (location of the POS/ATM)

IDV requests: Country of the IDV contact.

Empty for Wallet to Wallet Transfer. | 2-Letter ISO 3166-2 country code | | Presentment Currency | The currency of the transaction collected from debtor | Three-letter ISO 4217 code | | Presentment Amount | The amount collected from the debtor, in presentment currency

Payouts: The currency of the funds being sent to the beneficiary

Virtual Accounts: The currency of the funds deposited into the issued bank account. | decimal

**Note**: amount rounded based on the minor unit defined in ISO 4217 | | Wallet Account Currency | The currency of the payment collected as credited to the wallet.

For payments created using the Payment with FX API call, this currency will be different from the Presentment Currency Currency | Three-letter ISO 4217 code | | Wallet Amount | The amount collected from the debtor, credited to the wallet.

For payments created using the Payment with FX API call, this currency will be different from the Presentment Amount | decimal

**Note**: amount rounded based on the minor unit defined in ISO 4217 | | Destination Wallet Transaction Token | Transaction token on the of the transaction processed on the destination wallet (wt\_xxxxx). | string | | Destination Wallet | The wallet settlement funds are deducted from. | string | | Transaction Exchange Rate with Markup | The exchange rate used when using the Payment with FX API call. The rate includes the markup charged by Rapyd (if applicable)

For payments collected without FX, the value will be set to 1. without FX, the value will be set to 1. | decimal | | Transaction Exchange Rate without Markup | The base exchange rate used when using the Payment with FX API call. The rate does not include the markup charged by Rapyd (if applicable).

For payments collected without FX, the value will be set to 1.

For Issuing, the value is set to null. | decimal | | Transaction Exchange Fee | The exchange fee charged when using the Payment with FX API call, in denominated in the Wallet Account Currency.

For payments collected without FX, the value will be set to 0. | decimal | | Wallet Debit/Credit | Defines whether the transaction record resulted in a debit or credit action to the wallet account.

All 'payment' type transactions will perform a 'credit' action. | string | | Fee Currency | The currency of the fees applied to the transaction, not including the transaction exchange fees charged for the Payment with FX. | Three-letter ISO 4217 code | | Fee Exchange Rate | The rate applied when the fee currency is different than the presentment currency.

Fees are calculated from the presentment amount and currency. | decimal | | Transaction Fee | The fee amount for processing the transaction, denominated in Fee Currency. | decimal | | Fee in Wallet Currency | The fee amount for processing the transaction, denominated in the Wallet Account Currency. | decimal | | Settlement Currency | The currency of the net amount of the transaction, to be settled. | Three-letter ISO 4217 code | | Settlement Exchange Rate | The rate applied when the settlement currency is different than the fee and/or presentment currency.

The rate is used to convert from the fee currency to the settlement currency.

The rate includes the markup applied by Rapyd (if applicable). | decimal | | Settlement Amount | The net amount of the transaction to be settled, denominated in Settlement Currency.

in case withholding tax is applied, this column should present the net settlement amount after withholding tax deduction. | decimal | | Expected Settlement Date | The expected settlement date of the transaction. | date YYYY-MM-DD | | Action Created At | The timestamp issued when the transaction was first created via the Rapyd API. | timestamp YYYY-MM-DD HH:mm:ss | | Action Closed At | The timestamp issued when the transaction was confirmed and closed by the Rapyd system.

Split Payments: Valid for transaction type ‘payment’ only. | timestamp YYYY-MM-DD HH:mm:ss | | Reserve Amount | The amount transferred to Reserve. The Reserve Amount is calculated based on payments only.

The Reserve Amount will be deducted on the billing date. | decimal | | Reserve Currency | The Reserve account currency to which funds are transferred as part of the reserve process (when applicable). | Three-letter ISO 4217 code | | Rapyd Transaction Group ID | The transaction group ID when group payments are used.

Multiple transactions may share the same Transaction Group ID. | string | | Settlement Wallet | The ewallet token credited with the transaction, and from which the settlement is performed (if applicable). | string | | Billing Wallet | The ewallet token where fees will be deducted from. | string | | Wallet actual fee currency deducted | The currency type deducted from the wallet for the transaction. The transaction is listed by Billing ID. | Three-letter ISO 4217 code | | Wallet actual fee amount deducted | The fee amount deducted from the wallet for the transaction. The transaction is listed by Billing ID. | decimal | | Transaction wallet | The wallet where the transaction was created, listed by Wallet ID | string | | Invoice ID | A shared invoice ID for all transactions billed across multiple Merchant Reconciliation Reports. | string | | Card Brand | The brand of the card used, in case the transaction was created using a card payment method.

In all other cases, the value will be empty for Payments. | string | | Card Type | The type of the card used, in case the transaction was created using a card payment method.

In all other cases, the value will be empty for Payments. | string | | Platform Type | Type of card platform (e.g. Commercial, Consumer) | string | | Transaction Regionality | The identified location of the transaction based on the match between the merchant and the card holder’s countries. | string | | Issuing Country | The country where the card or bank account was issued.

Empty for other transaction types. | 2-Letter ISO 3166-2 country code | | Issued Card Token | value is empty for Payments | empty | | Card Holder Name | The name of the card holder, in case the transaction was created using a card payment method.

In all other cases, the value will be empty for Payments. | string | | Issued Bank Account Number | The number of the issued bank account, which funds were deposited into.

Value empty for other transaction types. | empty | | Tax Amount | The amount of the tax for any payment collection transaction. | decimal | | Tax Currency | The currency of the tax for any payment collection transaction. | Three-letter ISO 4217 code | | Tax Amount in Fee Currency | The currency of the payment as refunded to the original debtor | decimal | | Interchange Fee Amount | If interchange fee is applied due to the prediction model, it is stated here in Fee currency. | decimal | | Scheme Fee Amount | If scheme fee is applied due to the prediction model, it is stated here in Fee currency. | decimal | | Invoice Currency | The Invoice Currency as set within the price list | Three-letter ISO 4217 code | | Transaction Exchange Fee in Invoice Currency | The Transaction Exchange Fees denominated in Invoice Currency. | decimal | | Transaction Fees in Invoice Currency | The Transaction Fees denominated in Invoice Currency. | decimal | | Sender Name | Name of the sender related to the Virtual IBAN | string | | Sender Account Name | Account Name/Number of the sender related to the Virtual IBAN | string | | Sender Remitter Reference | Virtual IBAN related sender remitter reference | string | | Description | The reason why the transaction fee was manually adjusted. | string | | Sender Sort Code | Number identifying the bank of the Virtual IBAN | string | | Beneficiary Name | The name of the beneficiary. | string | | Withholding Tax Rate | The withholding tax rate, as configured by Rapyd. | decimal | | Gateway Reference ID (beta) | ID of the gateway on the Rapyd platform. | string | | Settlement ID | ID of the settlement of the transaction. | string | | Static Reference ID | Unique ID field added by the merchant for each wallet and bank account configuration.

Should be Alphanumeric. Min 3 characters, max 45 characters.

Once populated and saved can’t be changed. | string | [##### Merchant Reconciliation Beta](#idp265334_body) The Merchant Reconciliation Beta report includes all the fields in the current report as well as the newly included fields. Starting from Line 2 of the CSV file, the information contained follows the below guideline: | Column | Description | Value Type/Format | | --- | --- | --- | | Platform Fee - Count of Items | Values presented (per relevant transaction):

* Wallet Subscription - The number of wallets that were charged

* Inactive VA Fee - The number of Virtual Accounts that were charged

* Multiple VA Fee - The number of Virtual Accounts that were charged | number | | Platform Fee - Fee Per Item | Values presented (per relevant transaction):

* Wallet Subscription - fee amount per wallet

* Inactive VA Fee - fee amount per Virtual Account

* Multiple VA Fee - fee amount per Virtual Account | decimal | | Transaction Amount in Settlement Currency | The amount of the transaction in Settlement Currency. | decimal | | Fee Amount in Settlement Currency | The fee amount for the transaction in Settlement Currency. | decimal | | Transaction Exchange Fee in Settlement Currency | The exchange fee charged when using a transaction with FX, denominated in the Settlement Currency. | decimal | | Reserve Amount in Settlement Currency | The amount transferred to Reserve in Settlement Currency. | decimal | [##### Merchant Reconciliation by Settlement Report](#idp265408_body) The Merchant Reconciliation by Settlement Report includes all of the fields in the current report and the newly included fields. Starting from Line 2 of the CSV file, the information contained follows the below guideline: | | | | | --- | --- | --- | | Column | Description | Value Type/Format | | Transaction Type | Will be set as one of the following for the corresponding transaction(s): payment refund Payment\_reversal Chargeback Payouts payout reversals Issued card transactions Issued bank account deposits IDV requests Wallet to Wallet Transfer | string | | Rapyd Transaction ID | ID of the transaction on the Rapyd platform. Use this as a reference when contacting our support team | string | | Rapyd Reference ID | The unique token created when creating the transaction on the Rapyd platform.

**Note**: multiple transactions can share the same token in case payments are split between multiple wallets | string | | Merchant Reference ID | The unique ID referencing the merchant used when creating the transaction on the Rapyd platform.

This is an optional field and is provided to assist in reconciliation efforts.

**Note**: multiple transactions can share the same reference ID in case payments are split between multiple wallets | string | | Transaction Method Type | Name of the payment or payout method type used when creating the transaction

Issued Card: The type of hardware type used for deducting funds, i.e. 'vPOS', 'PPOS' or 'ATM'

Empty for virtual accounts or bank accounts | string | | Country | The country where the funds of the transaction were collected from.

Payout and payout reversal: The country of the beneficiary (where the funds of the payout are sent to).

Issued bank account deposits: The country of the issued accounts.

Issued card transactions: The country where the transaction was processed (location of the POS/ATM)

IDV requests: Country of the IDV contact.

Empty for Wallet to Wallet Transfer. | 2-Letter ISO 3166-2 country code | | Presentment Currency | The currency of the transaction collected from debtor | Three-letter ISO 4217 code | | Presentment Amount | The amount collected from the debtor, in presentment currency

Payouts: The currency of the funds being sent to the beneficiary

Virtual Accounts: The currency of the funds deposited into the issued bank account. | decimal

**Note**: amount rounded based on the minor unit defined in ISO 4217 | | Wallet Account Currency | The currency of the payment collected as credited to the wallet.

For payments created using the Payment with FX API call, this currency will be different from the Presentment Currency Currency | Three-letter ISO 4217 code | | Wallet Amount | The amount collected from the debtor, credited to the wallet.

For payments created using the Payment with FX API call, this currency will be different from the Presentment Amount | decimal

**Note**: amount rounded based on the minor unit defined in ISO 4217 | | Destination Wallet Transaction Token | Transaction token on the of the transaction processed on the destination wallet (wt\_xxxxx). | string | | Destination Wallet | The wallet settlement funds are deducted from. | string | | Transaction Exchange Rate with Markup | The exchange rate used when using the Payment with FX API call. The rate includes the markup charged by Rapyd (if applicable)

For payments collected without FX, the value will be set to 1. without FX, the value will be set to 1. | decimal | | Transaction Exchange Rate without Markup | The base exchange rate used when using the Payment with FX API call. The rate does not include the markup charged by Rapyd (if applicable).

For payments collected without FX, the value will be set to 1.

For Issuing, the value is set to null. | decimal | | Transaction Exchange Fee | The exchange fee charged when using the Payment with FX API call, in denominated in the Wallet Account Currency.

For payments collected without FX, the value will be set to 0. | decimal | | Wallet Debit/Credit | Defines whether the transaction record resulted in a debit or credit action to the wallet account.

All 'payment' type transactions will perform a 'credit' action. | string | | Fee Currency | The currency of the fees applied to the transaction, not including the transaction exchange fees charged for the Payment with FX. | Three-letter ISO 4217 code | | Fee Exchange Rate | The rate applied when the fee currency is different than the presentment currency.

Fees are calculated from the presentment amount and currency. | decimal | | Transaction Fee | The fee amount for processing the transaction, denominated in Fee Currency. | decimal | | Fee in Wallet Currency | The fee amount for processing the transaction, denominated in the Wallet Account Currency. | decimal | | Settlement Currency | The currency of the net amount of the transaction, to be settled. | Three-letter ISO 4217 code | | Settlement Exchange Rate | The rate applied when the settlement currency is different than the fee and/or presentment currency.

The rate is used to convert from the fee currency to the settlement currency.

The rate includes the markup applied by Rapyd (if applicable). | decimal | | Settlement Amount | The net amount of the transaction to be settled, denominated in Settlement Currency.

in case withholding tax is applied, this column should present the net settlement amount after withholding tax deduction. | decimal | | Expected Settlement Date | The expected settlement date of the transaction. | date YYYY-MM-DD | | Action Created At | The timestamp issued when the transaction was first created via the Rapyd API. | timestamp YYYY-MM-DD HH:mm:ss | | Action Closed At | The timestamp issued when the transaction was confirmed and closed by the Rapyd system.

Split Payments: Valid for transaction type ‘payment’ only. | timestamp YYYY-MM-DD HH:mm:ss | | Reserve Amount | The amount transferred to Reserve. The Reserve Amount is calculated based on payments only.

The Reserve Amount will be deducted on the billing date. | decimal | | Reserve Currency | The Reserve account currency to which funds are transferred as part of the reserve process (when applicable). | Three-letter ISO 4217 code | | Rapyd Transaction Group ID | The transaction group ID when group payments are used.

Multiple transactions may share the same Transaction Group ID. | string | | Settlement Wallet | The ewallet token credited with the transaction, and from which the settlement is performed (if applicable). | string | | Billing Wallet | The ewallet token where fees will be deducted from. | string | | Wallet actual fee currency deducted | The currency type deducted from the wallet for the transaction. The transaction is listed by Billing ID. | Three-letter ISO 4217 code | | Wallet actual fee amount deducted | The fee amount deducted from the wallet for the transaction. The transaction is listed by Billing ID. | decimal | | Transaction wallet | The wallet where the transaction was created, listed by Wallet ID | string | | Invoice ID | A shared invoice ID for all transactions billed across multiple Merchant Reconciliation Reports. | string | | Card Brand | The brand of the card used, in case the transaction was created using a card payment method.

In all other cases, the value will be empty for Payments. | string | | Card Type | The type of the card used, in case the transaction was created using a card payment method.

In all other cases, the value will be empty for Payments. | string | | Platform Type | Type of card platform (e.g. Commercial, Consumer) | string | | Transaction Regionality | The identified location of the transaction based on the match between the merchant and the card holder’s countries. | string | | Issuing Country | The country where the card or bank account was issued.

Empty for other transaction types. | 2-Letter ISO 3166-2 country code | | Issued Card Token | value is empty for Payments | empty | | Card Holder Name | The name of the card holder, in case the transaction was created using a card payment method.

In all other cases, the value will be empty for Payments. | string | | Issued Bank Account Number | The number of the issued bank account, which funds were deposited into.

Value empty for other transaction types. | empty | | Tax Amount | The amount of the tax for any payment collection transaction. | decimal | | Tax Currency | The currency of the tax for any payment collection transaction. | Three-letter ISO 4217 code | | Tax Amount in Fee Currency | The currency of the payment as refunded to the original debtor | decimal | | Interchange Fee Amount | If interchange fee is applied due to the prediction model, it is stated here in Fee currency. | decimal | | Scheme Fee Amount | If scheme fee is applied due to the prediction model, it is stated here in Fee currency. | decimal | | Invoice Currency | The Invoice Currency as set within the price list | Three-letter ISO 4217 code | | Transaction Exchange Fee in Invoice Currency | The Transaction Exchange Fees denominated in Invoice Currency. | decimal | | Transaction Fees in Invoice Currency | The Transaction Fees denominated in Invoice Currency. | decimal | | Sender Name | Name of the sender related to the Virtual IBAN | string | | Sender Account Name | Account Name/Number of the sender related to the Virtual IBAN | string | | Sender Remitter Reference | Virtual IBAN related sender remitter reference | string | | Description | The reason why the transaction fee was manually adjusted. | string | | Sender Sort Code | Number identifying the bank of the Virtual IBAN | string | | Beneficiary Name | The name of the beneficiary. | string | | Withholding Tax Rate | The withholding tax rate, as configured by Rapyd. | decimal | | Gateway Reference ID (beta) | ID of the gateway on the Rapyd platform. | string | | Settlement ID | ID of the settlement of the transaction. | string | | Static Reference ID | Unique ID field added by the merchant for each wallet and bank account configuration.

Should be Alphanumeric. Min 3 characters, max 45 characters.

Once populated and saved can’t be changed. | string | | Transaction Amount in Settlement Currency | The amount of the transaction in Settlement Currency. | decimal | | Fee Amount in Settlement Currency | The fee amount for the transaction in Settlement Currency. | decimal | | Transaction Exchange Fee in Settlement Currency | The exchange fee charged when using a transaction with FX, denominated in the Settlement Currency. | decimal | | Reserve Amount in Settlement Currency | The amount transferred to Reserve in Settlement Currency. | decimal | ##### Sample Report **Merchant Reconciliation Report** Merchant Reconciliation Report Beta,v1.7,KilbackNikolaus,From,2022/06/19,To,2022/06/20 Transaction Type,Rapyd Transaction ID,Rapyd Reference ID,Merchant Reference ID,Transaction Method Type,Country,Presentment Currency,Presentment Amount,Wallet Account Currency,Wallet Amount,Transaction Exchange Rate with Markup,Transaction Exchange Rate without Markup,Transaction Exchange Fee,Wallet Debit/Credit,Fee Currency,Fee Exchange Rate,Transaction Fees,Fees In Wallet Currency,Settlement Currency,Settlement Exchange Rate,Settlement Amount,Expected Settlement Date,Action Created At,Action Closed At,Rapyd Transaction Group ID,Destination Wallet,Billing Wallet,Invoice ID,Card Brand,Card Type,Issuing Country,Issued Card Token,Card Holder Name,Issued Bank Account Number,Tax Amount,Tax Currency,Tax Amount in Fee Currency,Interchange Fee Amount,Scheme Fee Amount,Source Wallet,Invoice Currency,Transaction Exchange Fee in Invoice Currency,Transaction Fees in Invoice Currency,Sender Name,Sender Account Name,Sender Remitter Reference,Sender Sort Code payment,ec6ae6c3-4869-48af-a4ac-650444019e1a,payment\_5cc931a5e5af57caa6b93895cd1cc359,payment\_5cc931a5e5af57caa6b93895cd1cc359,at\_visa\_card,AT,USD,4.00000,USD,4.00000,1,1,,credit,USD,1.00000000,5.08,5.08,USD,1,-1.08,2022-06-20 00:00:00,2022-06-19 11:25:59,2022-06-19 11:25:59,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,5.08,,,, payment,38bc824c-8b66-471a-8a87-c7c2f89a2b3b,payment\_e9e51372b49184523345af3235d6cbd0,payment\_e9e51372b49184523345af3235d6cbd0,at\_visa\_card,AT,USD,4.00000,USD,4.00000,1,1,,credit,USD,1.00000000,5.08,5.08,USD,1,-1.08,2022-06-20 00:00:00,2022-06-19 11:42:48,2022-06-19 11:42:48,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,5.08,,,, payment,994ad99a-f6be-46d4-bff1-7b0752688a27,payment\_9271a2f554badadb894f4b4a50fbf141,payment\_9271a2f554badadb894f4b4a50fbf141,at\_visa\_card,AT,USD,4.00000,USD,4.00000,1,1,,credit,USD,1.00000000,5.08,5.08,USD,1,-1.08,2022-06-20 00:00:00,2022-06-19 12:22:13,2022-06-19 12:22:13,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,5.08,,,, chargeback,37f486a0-0e82-4a06-aaf3-da735cc3ad1c,dispute\_609d189f5e78e33a6812490c57d90178,payment\_9271a2f554badadb894f4b4a50fbf141,at\_visa\_card,AT,,,USD,4.00000,1,1,,debit,USD,1.00000000,15.00,15.00,GBP,0.81783000,15.54,2022-06-20 00:00:00,2022-06-19 12:22:31,2022-06-19 12:22:31,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,15.00,,,, payment,c7af4f6a-b506-4505-b9ac-002d098f5ca5,payment\_0f9bd9007ba773579c020c36d259211f,payment\_0f9bd9007ba773579c020c36d259211f,at\_visa\_card,AT,USD,4.00000,USD,4.00000,1,1,,credit,USD,1.00000000,5.08,5.08,USD,1,-1.08,2022-06-20 00:00:00,2022-06-19 12:25:01,2022-06-19 12:25:01,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,5.08,,,, chargeback,84507cf6-8bf4-4c2e-a3c3-aaed6867e4bd,dispute\_09b775a6014d132cdda3db686d2cb28a,payment\_0f9bd9007ba773579c020c36d259211f,at\_visa\_card,AT,,,USD,4.00000,1,1,,debit,USD,1.00000000,15.00,15.00,GBP,0.81783000,15.54,2022-06-20 00:00:00,2022-06-19 12:25:09,2022-06-19 12:25:09,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,15.00,,,, payment,4f72531c-bec5-4518-87e1-0d492ed74c3d,payment\_42be58d25b68d2ae95e0016cec7afe91,payment\_42be58d25b68d2ae95e0016cec7afe91,at\_visa\_card,AT,USD,4.00000,USD,4.00000,1,1,,credit,USD,1.00000000,5.08,5.08,USD,1,-1.08,2022-06-20 00:00:00,2022-06-19 14:08:43,2022-06-19 14:08:43,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,5.08,,,, chargeback,8d8f6f5d-5f4f-4dbb-8d6a-8140fa6403fc,dispute\_bd243b986542af4b2dac39bb02703dad,payment\_42be58d25b68d2ae95e0016cec7afe91,at\_visa\_card,AT,,,USD,2.00000,1,1,,debit,USD,1.00000000,15.00,15.00,GBP,0.81783000,13.91,2022-06-20 00:00:00,2022-06-19 14:18:24,2022-06-19 14:18:24,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,15.00,,,, payment,9279ca24-303b-4f7b-b16e-50b3a504d9eb,payment\_10ae634970313f25e498cdce12e22da0,payment\_10ae634970313f25e498cdce12e22da0,at\_visa\_card,AT,USD,4.00000,USD,4.00000,1,1,,credit,USD,1.00000000,5.08,5.08,USD,1,-1.08,2022-06-20 00:00:00,2022-06-19 14:19:29,2022-06-19 14:19:29,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,5.08,,,, chargeback,d9c6fcc9-1d7d-4115-a519-0a721cf120f4,dispute\_ea53f12375dda05014b1c00c36dc8764,payment\_10ae634970313f25e498cdce12e22da0,at\_visa\_card,AT,,,USD,2.00000,1,1,,debit,USD,1.00000000,15.00,15.00,GBP,0.81783000,13.91,2022-06-20 00:00:00,2022-06-19 14:19:37,2022-06-19 14:19:37,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,15.00,,,, payment,ec6379f4-5a85-4993-8bd5-dda7cbb707e5,payment\_e243e1be8f60a7635b3071a29fb304e1,payment\_e243e1be8f60a7635b3071a29fb304e1,at\_visa\_card,AT,USD,4.00000,USD,4.00000,1,1,,credit,USD,1.00000000,5.08,5.08,USD,1,-1.08,2022-06-20 00:00:00,2022-06-19 14:21:25,2022-06-19 14:21:25,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,5.08,,,, chargeback,2512fb5e-be3b-4321-9a9c-6dd7c27d1e8c,dispute\_c78441ace618ddb5c778d8d578feaa6f,payment\_e243e1be8f60a7635b3071a29fb304e1,at\_visa\_card,AT,,,USD,2.00000,1,1,,debit,USD,1.00000000,15.00,15.00,GBP,0.81783000,13.91,2022-06-20 00:00:00,2022-06-19 14:21:32,2022-06-19 14:21:32,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,15.00,,,, payment,42cbd33f-1be1-4ebd-9493-0b92a6f54151,payment\_c290f22c3b0f792991328f4805869efa,payment\_c290f22c3b0f792991328f4805869efa,at\_visa\_card,AT,USD,40.00000,USD,40.00000,1,1,,credit,USD,1.00000000,5.80,5.80,USD,1,34.20,2022-06-20 00:00:00,2022-06-19 14:24:41,2022-06-19 14:24:41,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,5.80,,,, chargeback,6131e73a-1520-4ed4-908b-084a96842b87,dispute\_233495e3d14787b65635c60b4dd8f374,payment\_c290f22c3b0f792991328f4805869efa,at\_visa\_card,AT,,,USD,2.00000,1,1,,debit,USD,1.00000000,15.00,15.00,GBP,0.81783000,13.91,2022-06-20 00:00:00,2022-06-19 14:28:19,2022-06-19 14:28:19,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,15.00,,,, chargeback,8c177c69-11c0-42ee-8b2a-dd49a9530092,dispute\_8b750cc9738510fe868939ee5997874c,payment\_c290f22c3b0f792991328f4805869efa,at\_visa\_card,AT,,,USD,2.00000,1,1,,debit,USD,1.00000000,15.00,15.00,GBP,0.81783000,13.91,2022-06-20 00:00:00,2022-06-19 14:28:53,2022-06-19 14:28:53,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,15.00,,,, chargeback,f33777d2-eeca-401b-9ecb-8c4fe8076c54,dispute\_741da11783eabe6b5d4607353c3e3494,payment\_c290f22c3b0f792991328f4805869efa,at\_visa\_card,AT,,,USD,2.00000,1,1,,debit,USD,1.00000000,15.00,15.00,GBP,0.81783000,13.91,2022-06-20 00:00:00,2022-06-19 14:29:12,2022-06-19 14:29:12,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,15.00,,,, chargeback,e5d19e17-2722-42b4-88eb-23110a574ebd,dispute\_06dd0fd96b7abc12abad31c57ad52087,payment\_c290f22c3b0f792991328f4805869efa,at\_visa\_card,AT,,,USD,2.00000,1,1,,debit,USD,1.00000000,15.00,15.00,GBP,0.81783000,13.91,2022-06-20 00:00:00,2022-06-19 14:30:58,2022-06-19 14:30:58,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,15.00,,,, payment,cd2320ec-de78-4c6d-8777-2a4e38fda49f,payment\_c40d584810259df99d7c1d81c8c082c1,payment\_c40d584810259df99d7c1d81c8c082c1,at\_visa\_card,AT,USD,40.00000,USD,40.00000,1,1,,credit,USD,1.00000000,5.80,5.80,USD,1,34.20,2022-06-20 00:00:00,2022-06-19 14:33:01,2022-06-19 14:33:01,,,ewallet\_be4ba8f13da40caa59a7e03022a8acfe,fee1a72be022cecd1c4b7b222d2f777f,,,,,,,,,,0.00,0.00,,USD,,5.80,,,, In this section: Search results -------------- No results found * [Prev](failed-payments-report.html#idp264681) * [Next](merchant-reconciliation-report.html#idp264749) --- # Update Product [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Product](product.html) * Update Product * [Prev](create-product.html) * [Next](list-products.html) ###### Update Product Change or modify a product or service. This method triggers the **Product Updated** webhook. This webhook contains the same information as the response. [###### Parameters](#idp299090_body) [###### Request Path Parameters](#idp299092_body) * * product * ID of the product. [###### Request Header Parameters](#idp299101_body) [###### Request Body Parameters](#idp299161_body) * * active * Indicates whether the product is currently available for purchase. true * * attributes * Array of up to 5 alphanumeric strings defined by the merchant. Each string defines the key in a key-value pair in the `attributes` object in the corresponding `sku` objects. * * name * The name of the product or service that is displayed to the customer. * * package\_dimensions * Describes the physical size and weight of the product. Relevant when `type` is **goods**. Contains the following fields: * `height` * `length` * `weight` * `width` These fields are represented as numbers, but it is the responsibility of the merchant to define and interpret the relevant units of length and weight. * * statement\_descriptor * A text description that appears in the customer's invoice. Limited to 22 characters. Relevant when `type` is **service**. * * unit\_label * A label that represents units of this product, such as seats, on customers’ invoices. Relevant when `type` is **service**. [###### Response Parameters](#idp299231_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string product = "product\_0d9dc6be69c769560fe913f3b086d8ca"; var metadata = new { merchant\_defined = true }; string attributes = new string\[\] { "color", "armrest", "cover" }; var package\_dimensions = new Object\[\] { new { height = 10 }, new { length = 20 }, new { weight = 100 }, new { width = 40 }, }; string result = RapydApiRequestSample.Utilities.MakeRequest("POST", $"/v1/products/{product}", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { name: 'Gamers Red Chair' }; const result = await makeRequest( 'POST', '/v1/products/product\_5d11e30104e3b802c44a08a434aef729', body ); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ "name" => "Gamer's Red Chair",\ "statement\_descriptor" => "",\ \]; try { $object = make\_request('post', '/v1/products/product\_cc7ca57655ce8bc3149d318662b3b8bd', $body); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request product = { "name": "Gamer's Red Chair", "attributes": \[\ "color",\ "armrest",\ "cover"\ \], "metadata": { "merchant\_defined": True }, "package\_dimensions": { "height": 10, "length": 20, "weight": 100, "width": 40 } } result = make\_request(method='post', path='/v1/products/product\_0d9dc6be69c769560fe913f3b086d8ca', body=product) pprint(result) * /v1/products/:product * Update Product * curl -X post https://sandboxapi.rapyd.net/v1/products/product\_0d9dc6be69c769560fe913f3b086d8ca -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "name": "Gamer's Red Chair", "attributes": \[\ "color",\ "armrest",\ "cover"\ \], "metadata": { "merchant\_defined": true }, "package\_dimensions": { "height": 10, "length": 20, "weight": 100, "width": 40 }, "statement\_descriptor": "", "unit\_label": "" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "039ee3bd-48c9-43ec-8706-6578962f14bb" }, "data": { "id": "product\_0d9dc6be69c769560fe913f3b086d8ca", "active": true, "attributes": \[\ "armrest",\ "color",\ "cover"\ \], "created\_at": 1592299157, "description": "The ultimate in comfort for the dedicated gamer.", "metadata": { "merchant\_defined": true }, "name": "Gamer's Red Chair", "package\_dimensions": { "height": 10, "length": 20, "weight": 100, "width": 40 }, "shippable": true, "skus": \[\], "statement\_descriptor": "", "type": "goods", "unit\_label": "", "updated\_at": 1592300812 } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](create-product.html) * [Next](list-products.html) --- # Subscription Unpaid Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription Webhooks](subscription-webhooks.html) * Subscription Unpaid Webhook * [Prev](subscription-past-due-webhook.html) * [Next](subscription-updated-webhook.html) ###### Subscription Unpaid Webhook The **CUSTOMER\_SUBSCRIPTION\_UNPAID** webhook is sent when an error occurs in the payment for a subscription. [###### Parameters](#idp316915_body) [###### Webhook Header Parameters](#idp316917_body) [###### Webhook Root Parameters](#idp316957_body) [###### Webhook Data Parameters](#idp317030_body) * CUSTOMER\_SUBSCRIPTION\_UNPAID Webhook * { "id": "wh\_d55dc29e1bbcdced4ca961570e69e8bc", "type": "CUSTOMER\_SUBSCRIPTION\_UNPAID", "data": { "id": "sub\_af19b8191b2a481d3d37990be60c2e11", "type": "payment", "status": "unpaid", "billing": "pay\_automatically", "discount": null, "ended\_at": null, "metadata": {}, "trial\_end": null, "created\_at": 1641822647, "canceled\_at": null, "tax\_percent": 0, "trial\_start": null, "payout\_fields": null, "customer\_token": "cus\_d3ed65d5091a8398cc3651bcedec1201", "days\_until\_due": null, "payment\_fields": null, "payment\_method": "card\_85264b18bc1bfb949dbb2d88d3d5c12c", "current\_period\_end": 1642081847, "subscription\_items": null, "billing\_cycle\_anchor": 1641909047, "cancel\_at\_period\_end": false, "current\_period\_start": 1641995447 }, "trigger\_operation\_id": "bbc72b69-f8e0-48c2-be27-83d402d92d55", "status": "NEW", "created\_at": 1641946884,     "extended\_timestamp": 1641946884848 } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](subscription-past-due-webhook.html) * [Next](subscription-updated-webhook.html) --- # Subscription - Hosted Page [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * Subscription - Hosted Page * [Prev](subscription-errors.html) * [Next](create-subscription-by-hosted-page.html) ##### Subscription - Hosted Page Defines a customer-facing page for creating periodic payments. The subscription hosted page collects personal identifying information (PII) from the customer and creates a subscription that charges the customer periodically. ### Note * A customer can have more than one subscription. * Subscriptions support card payment method types. * For a subscription with a fixed number of billing periods, such as for an installment sale, you must use [Update Subscription](update-subscription.html "Update Subscription") during the last billing period and set `cancel_at_period_end` to **true**. When the customer submits the hosted page, Rapyd sends the client one or more webhooks. **Prerequisites** * A product of type **service**. See [Create Product](create-product.html "Create Product") . * An active plan. See [Create Plan](create-plan.html "Create Plan") . Methods * [Create Subscription by Hosted Page](create-subscription-by-hosted-page.html "Create Subscription by Hosted Page") In this section: Search results -------------- No results found * [Prev](subscription-errors.html) * [Next](create-subscription-by-hosted-page.html) --- # Activating Your Account (KYB) [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * Activating Your Account (KYB) * [Prev](rapyd-platforms.html#idp215979) * [Next](activating-your-account--kyb-.html#idp215998) ### Activating Your Account (KYB) Fully activate your account and fulfill `Know Your Business` requirements. #### Activate Your Account and Remove Limitations To fully open your account you will need to complete Rapyd’s [KYB](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_kyb "Know Your Business") (Know Your Business) process. Once your KYB questionnaire is submitted and approved you will be able remove account limits, collect payments and utilize additional Rapyd Products. In order to speed up getting your account fully activated, follow these steps: ##### Step 1: Start Building Out Your Integration to Safely Test It in the Sandbox Make sure to get your test API keys in the [Client Portal](client-portal-guide.html "Client Portal Guide") . You can toggle your Client Portal to [sandbox](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_sandbox "Sandbox") mode to view your test data. ##### Step 2: Complete Your KYB Application 1. Sign in to the Client Portal as described in [Signing in to the Client Portal](signing-in-to-the-client-portal.html "Signing In to the Client Portal") . 2. The **Get started** page appears. ![kyb-flow-1.png](image/16763ca2f01aed.png) 3. Click the **Verify my account** button to start your KYB application. 4. The KYB Application page appears. ![kyb-flow-2.png](image/16763ca2f0cb9e.png) 5. Complete the following required fields: * Country * Business Type * Industry * Sell Type ![kyb-flow-3.png](image/16763ca2f16a21.png) 6. Click **Start Application**. 7. The **Business Details** page appears. Provide information about your business, which is required for compliance with regulatory and business requirements. ![kyb-flow-4.png](image/16763ca2f248e7.png) 8. Complete the required fields. 9. After filling the required fields, click on the Company Details link in the left menu. ![kyb-flow-5.png](image/16763ca2f304e1.png) 10. The **Company Details** page appears. Provide information about your company. ![kyb-flow-6.png](image/16763ca2f3c191.png) 11. Complete the required fields. 12. You can upload supporting documentation at the bottom by clicking the **+** button. ![kyb-flow-7.png](image/16763ca2f470b8.png) 13. After filling the required fields, click on the Authorized User link in the left menu. ![kyb-flow-8.png](image/16763ca2f51d9b.png) 14. The **Authorized User** page appears. Provide personal details about the Account Owner. ![kyb-flow-9.png](image/16763ca2f5cbcf.png) 15. Complete the required fields. 16. After completing the required fields, click on the Beneficial Owners link in the left menu. ![kyb-flow-10.png](image/16763ca2f676b5.png) 17. The **Beneficial Owners** page appears. Provide the personal details of individuals who hold 25% or more of the company shares. ![kyb-flow-11.png](image/16763ca2f73823.png) 18. Complete the required fields. 19. (Optional) - You can click the **Authorized User** checkbox at the top of the page if the Beneficial Owner is the same person as the Authorized User. 20. (Optional) - If there are no beneficial owners for your company, select the **No** option at the top of the form. A window will appear asking you to confirm. Click **Confirm**. ![kyb-flow-12.png](image/16763ca2f7f578.png) 21. (Optional) If there are multiple beneficial owners, add additional beneficial owners in the left menu. ![kyb-flow-13.png](image/16763ca2f88fae.png) 22. Complete the required fields for the Beneficial Owner page if applicable. 23. Click the **Submit** button at the bottom of the form. ![kyb-flow-14.png](image/16763ca2f92862.png) 24. Confirm you are ready to submit the application and complete the reCAPTCHA. ![kyb-flow-15.png](image/16763ca2f9d2ca.png) 25. Click **Submit**. ![kyb-flow-16.png](image/16763ca2fa6e64.png) 26. The application submission screen appears, listing your application status. ![kyb-flow-17.png](image/16763ca2fb0d81.png) 27. Click **View Application** to view your KYB application details. ![kyb-flow-18.png](image/16763ca2fbac08.png) 28. Check your KYB application status by navigating to the **Get Started** page. ![kyb-flow-19.png](image/16763ca2fc5d1d.png) ##### Step 3: A Compliance Specialist Will Begin To Look at Your Application To complete business verification and verify bank account ownership your account will go into review. Depending on your country, it can take up to 30 days to approve your application before your account can be activated. If the compliance specialist is missing information and needs additional details to get your account approved they will reach out to you. Follow Up with Rapyd Support The KYB approval process may take up to 30 days before your application is approved and your account can be activated. If you have not received a response from Rapyd within 30 days, please open a ticket through [Rapyd Support](https://support.rapyd.net) . See [Creating a Customer Support Ticket](creating-a-customer-support-ticket.html "Creating a Customer Support Ticket") for more details on creating a support ticket. ### Before Activating Your Account Check this [list](https://www.rapyd.net/security-compliance/restricted-businesses/) to confirm that you are eligible to apply for a Rapyd account. #### KYB FAQs **What documents do I need to provide to complete KYB and fully activate my account?** The required documents will vary from country to country and by the requested services. You might be asked to provide documents such as articles of incorporation, organizational structure, proof of address, etc. **Once I complete the KYB, how long is the waiting period until I am approved?** Our compliance review and approval can take up to 30 days. You need to wait until your account receives KYB approval before collecting payments from customers. **How can I change my questionnaire after it has been submitted?** Once you submit your application you may see your information, but it won’t be possible to make any changes to it. In this section: The process of verifying the identity of a business customer. In Rapyd, the sandbox environment provides most of the functionality of the production environment, without using real money. Interested persons can use the sandbox to explore Rapyd's product offering or to test software integrations with Rapyd's API. Search results -------------- No results found * [Prev](rapyd-platforms.html#idp215979) * [Next](activating-your-account--kyb-.html#idp215998) --- # Create SKU [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [SKU](sku.html) * Create SKU * [Prev](sku.html) * [Next](create-sku.html#idp343803) ##### Create SKU Create an SKU and attach it to a product. Relevant to products where `type` is **goods**. You can attach several SKUs to a single product. This method triggers the **SKU Created** webhook. This webhook contains the same information as the response. ### Note If the product defined an array of `attributes`, then you must include an `attributes` object that assigns values to those attributes, as in the example below. [###### Parameters](#idp343807_body) [###### Request Header Parameters](#idp343809_body) [###### Request Body Parameters](#idp343869_body) * * active * Indicates whether the product is currently available for purchase. false * * currency * Three-letter ISO 4217 code for the currency used in the `price` parameter. * * id * ID of the `sku` object. Alphanumeric characters and underscores (\_). If the client does not provide this value, Rapyd creates a string starting with **sku\_**. * * image * URL of image associated with the product. * * inventory * Describes the items packaged together as a SKU item. * * price * The amount of the price. Decimal. * * product * ID of the product that this SKU relates to. The `type` field of the product must be set to **goods**. [###### Response Parameters](#idp344015_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var attributes = new { color = "green" }; var inventory = new { quantity = 1, type = "finite", value = 600, }; var metadata = new { merchant\_defined = true }; var package\_dimensions = new { length = 2, height = 1, weight = 3, width = 4, }; var requestObj = new { id = "", active = true, attributes, currency = "USD", image = (string) null, inventory, metadata, package\_dimensions, price = 600, product = "product\_f383d03c34fb499eb3ada4e3c574002a", }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/skus", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { id: '', active: true, attributes: { color: 'green' }, currency: 'USD', image: null, inventory: { quantity: 1, type: 'finite', value: 600 }, metadata: { merchant\_defined: 'true' }, package\_dimensions: { length: 2, height: 1, weight: 3, width: 4 }, price: 600, product: 'product\_f383d03c34fb499eb3ada4e3c574002a' }; const result = await makeRequest('POST', '/v1/skus', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); // Message body: //{ // "product": "product\_f383d03c34fb499eb3ada4e3c574002a", // "price":600, // "inventory": { // "quantity": 1, // "type": "finite", // "value": 600 // } //} $body = \[\ "product" => "product\_f383d03c34fb499eb3ada4e3c574002a",\ "price" => 600,\ "inventory" => array(\ "quantity" => 1,\ "type" => "finite",\ "value" => 600\ )\ \]; try { $object = make\_request('post', '/v1/skus', $body); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request sku = { "active": True, "attributes": { "color": "green" }, "currency": "USD", "inventory": { "quantity": 1, "type": "finite", "value": 600 }, "metadata": { "merchant\_defined": True }, "package\_dimensions": { "length": 2, "height": 1, "weight": 3, "width": 4 }, "price": 600, "product": "product\_f383d03c34fb499eb3ada4e3c574002a" } result = make\_request(method='post', path='/v1/skus', body=sku) pprint(result) * /v1/skus * Create SKU * curl -X post https://sandboxapi.rapyd.net/v1/skus -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "id": "", "active": true, "attributes": { "color": "green", "arm\_rest": true }, "currency": "USD", "image": null, "inventory": { "quantity": 1, "type": "finite", "value": 600 }, "metadata": { "merchant\_defined": true }, "package\_dimensions": { "length": 2, "height": 1, "weight": 3, "width": 4 }, "price": 600, "product": "product\_1228f5334ea6cee9052137b85db1699b" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "9371db29-4304-4b36-9004-cb98539bb941" }, "data": { "id": "sku\_de7d491598e013008959aa8484438fc8", "active": true, "attributes": { "color": "green", "arm\_rest": true }, "created\_at": 1675845778, "currency": "USD", "image": "", "inventory": { "type": "finite", "quantity": 1, "value": "" }, "metadata": { "merchant\_defined": true }, "price": 600, "product": "product\_1228f5334ea6cee9052137b85db1699b", "package\_dimensions": { "length": 2, "height": 1, "weight": 3, "width": 4 }, "updated\_at": 1675845778 } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](sku.html) * [Next](create-sku.html#idp343803) --- # Subscription Past Due Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription Webhooks](subscription-webhooks.html) * Subscription Past Due Webhook * [Prev](subscription-canceled-webhook.html) * [Next](subscription-unpaid-webhook.html) ###### Subscription Past Due Webhook The **CUSTOMER\_SUBSCRIPTION\_PAST\_DUE** webhook is sent when payment for a subscription was not received by the end of the billing period. [###### Parameters](#idp316351_body) [###### Webhook Header Parameters](#idp316353_body) [###### Webhook Root Parameters](#idp316393_body) [###### Webhook Data Parameters](#idp316466_body) * CUSTOMER\_SUBSCRIPTION\_PAST\_DUE Webhook * { "id": "wh\_f7ddc0e0b63c82d1a38c3092cdcd98bd", "data": { "id": "sub\_8130a18f5835951c146c7373f3f53e99", "type": "payment", "status": "past\_due", "billing": "pay\_automatically", "discount": null, "ended\_at": null, "metadata": {}, "trial\_end": null, "created\_at": 1702347910, "canceled\_at": null, "tax\_percent": 0, "trial\_start": null, "payout\_fields": null, "customer\_token": "cus\_cac661b201c726e536c5bdb051ef1414", "days\_until\_due": 30, "payment\_fields": null, "payment\_method": "card\_eb67716cfd8f090686a5157ea86450d7", "current\_period\_end": 1705026310, "subscription\_items": { "url": "/v1/subscription\_items?subscription=sub\_8130a18f5835951c146c7373f3f53e99", "data": \[{\ "id": "subi\_e61b910e3bd9898d18ddcfcef147951b",\ "plan": {\ "id": "plan\_f538ff2918d5d105c83e859e56ec2c74",\ "tiers": \[\],\ "active": true,\ "amount": 100,\ "product": {\ "id": "Aut\_gSzXJC",\ "name": "Subs Checks",\ "skus": \[\],\ "type": "services",\ "active": true,\ "images": \[\],\ "metadata": {},\ "shippable": false,\ "attributes": \[\],\ "created\_at": 1702347909,\ "unit\_label": "checks",\ "updated\_at": 1702347909,\ "description": "",\ "package\_dimensions": {\ "width": 0,\ "height": 0,\ "length": 0,\ "weight": 0\ },\ "statement\_descriptor": ""\ },\ "currency": "USD",\ "interval": "month",\ "metadata": {},\ "nickname": "",\ "created\_at": 1702347909,\ "tiers\_mode": "",\ "usage\_type": "licensed",\ "billing\_scheme": "per\_unit",\ "interval\_count": 1,\ "aggregate\_usage": "sum",\ "transform\_usage": {\ "round": "up",\ "divide\_by": 1\ },\ "trial\_period\_days": 0\ },\ "created": 1702347910,\ "metadata": null,\ "quantity": 1\ }\ \], "has\_more": false, "total\_count": 1 }, "billing\_cycle\_anchor": 1702347910, "cancel\_at\_period\_end": false, "current\_period\_start": 1702347910, "simultaneous\_invoice": false }, "type": "CUSTOMER\_SUBSCRIPTION\_PAST\_DUE", "status": "NEW", "created\_at": 1702944360,     "extended\_timestamp": 1702944360631, "trigger\_operation\_id": "6c29ba08-eeca-4530-9ccc-02d77e2ec5a9" } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](subscription-canceled-webhook.html) * [Next](subscription-unpaid-webhook.html) --- # Payment Method Canceled Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Customer Payment Method](customer-payment-method.html) * [Payment Method Webhooks](payment-method-webhooks.html) * Payment Method Canceled Webhook * [Prev](customer-payment-method-created-webhook.html) * [Next](customer-payment-method-errors.html) ###### Payment Method Canceled Webhook The **PAYMENT\_METHOD\_CANCELED** webhook is sent when a customer’s payment method is deleted by the client. [###### Parameters](#idp342676_body) [###### Webhook Header Parameters](#idp342678_body) [###### Webhook Root Parameters](#idp342718_body) [###### Webhook Data Parameters](#idp342791_body) * PAYMENT\_METHOD\_CANCELED Webhook * { "id": "wh\_456ced2d410245270d2024a388b03c5c", "type": "PAYMENT\_METHOD\_CANCELED", "data": { "id": "card\_0ef22c3b9fa5991a4da957d3dcee2e7b", "name": "John Doe", "type": "us\_visa\_card", "image": "", "last4": "1111", "category": "card", "metadata": {}, "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": null, "brand": null, "country": null, "bin\_number": "411111" }, "next\_action": "3d\_verification", "webhook\_url": "", "expiration\_year": "25", "expiration\_month": "12", "fingerprint\_token": "ocfp\_e599f990674473ce6283b245e9ad2467", "supporting\_documentation": "" }, "trigger\_operation\_id": "9499efd0-c818-478d-8d44-f96d0a1de2d5", "status": "NEW", "created\_at": 1639052456,     "extended\_timestamp": 1639052456834 } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. A number for a bank account that is used for international transfers. A server used by [issuing banks](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_issuer) to authenticate card users by [3DS](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_rds) authentication. Search results -------------- No results found * [Prev](customer-payment-method-created-webhook.html) * [Next](customer-payment-method-errors.html) --- # Payment Links [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Collect](rapyd-collect.html) * [Rapyd Checkout Overview](rapyd-checkout-overview.html) * Payment Links * [Prev](checkout-toolkit-integration.html#idp217357) * [Next](payment-links.html#idp217699) ##### Payment Links Create pages that can be reused for payment requests. Payment Links can be added to SMS, WhatsApp, invoices, emails or anywhere you can paste a link. Once you generate a payment link from your Rapyd account, a pre-payment page is created for the customer that has a set payment amount, or an open payment amount that can be edited. The customer is then redirected to a payment page with the selected amount to complete the payment. In the future, the customer can reuse the same link to payment with the same set or custom amount. [###### Payment Link Example](#idp217699_body) 1. Click **Proceed to Payment**. ![save-card-details-rapyd-checkout-flow-1.png](image/16763ca304a655.png) 2. Select your Payment Method Type. Enter the payment method details. 3. Click **Place Your Order** to complete the payment. ![payment-links-flow-2.png](image/16763ca30560fe.png) 4. The Payment confirmation page appears. ![payment-links-flow-3.png](image/16763ca30624b4.png) [###### Payment Link Workflow](#idp217721_body) ![payment-links-flow-4.png](image/16763ca306bed0.png) 1. You generate a payment link via API request. 2. The customer clicks on the payment link and a pre-payment page is displayed. The customer sees a fixed amount OR enters a custom amount to pay and clicks **Continue**. 3. Rapyd automatically redirects the customer to the payment page to complete the payment. 4. Customer completes the payment with their desired payment method. 5. Rapyd sends a webhook to you and you notify the customer. **Note**: If the customer returns to the payment link, the link is reusable and provides the customer with the ability to create another payment. ### Payment Links With FX You can create a payment link and collect the currency of your choice using FX. Your customer can pay in one currency, while you collect the funds in a different currency using FX. Pass the `fixed_side` and `requested_currency` fields in the request body. [###### How Payment Links Work](#idp217745_body) You can create a payment link using the Rapyd API with [Create Payment Link](create-payment-link.html "Create Payment Link") . Description of Path Parameters See [Create Payment Link](create-payment-link.html "Create Payment Link") for additional details about the parameters. | Path Parameter | Required | Description | | --- | --- | --- | | max\_payments | no | The number of times a payment link can be used for payment before expiring. | Description of Body Parameters | Body Parameter | Required | Description | | --- | --- | --- | | amount | yes | The amount of the payment, in units of currency defined in **currency**. | | country | yes | The two-letter ISO 3166-1 ALPHA-2 code for the country. | | currency | yes | In transactions without FX, defines the currency of the transaction. Three-letter ISO 4217 code.

In FX transactions:

* When `fixed_side` is **buy**, it is the currency received in the Rapyd wallet.

* When `fixed_side` is **sell**, it is the currency charged to the buyer. | | fixed\_side | no | Indicates whether the FX rate is fixed for the buy side (seller) or for the sell side (buyer).

* **buy** - The currency that the Rapyd Wallet receives for goods or services. Fixed side buy relates to the seller (merchant) funds.

* **sell** - The currency that the buyer is charged for purchasing goods or services. Fixed side sell relates to the buyer (customer) funds. | | requested\_currency | no | Currency for one side of an FX transaction. Three-letter ISO 4217 code.

* When `fixed_side` is **sell**, it is the currency received in the Rapyd Wallet.

* When `fixed_side` is **buy**, it is the currency charged to the buyer (customer). | ###### Create Payment Link Request * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/hosted/collect/payments // Message body: { "country": "US", "currency": "USD", "amount": "200", "merchant\_reference\_id": "payment link", "language": "EN", "checkout": { "error\_payment\_url": "https://www.rapyd.net", "complete\_payment\_url": "https://www.rapyd.net" } } ###### Create Payment Link Response [Create Payment Link](create-payment-link.html "Create Payment Link") describes the fields in the response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "72697a92-cf9d-4626-8712-b3f48111f3a7" }, "data": { "id": "hp\_reuse\_bf49164ab53b44f3a961aa4bec6659f4", "amount": 200, "currency": "USD", "country": "US", "amount\_is\_editable": false, "merchant\_reference\_id": "payment link", "template": { "error\_payment\_url": "https://www.rapyd.net", "complete\_payment\_url": "https://www.rapyd.net" }, "customer": "", "requested\_currency": null, "fixed\_side": null, "status": "NEW", "language": "en", "org\_id": "20044f9b-8f6d-41d9-a106-c6d2c0f54d92", "merchant\_color": "", "merchant\_logo": "", "merchant\_website": "https://www.rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "N/A", "merchant\_terms": "", "merchant\_privacy\_policy": "", "page\_expiration": 1745703479, "redirect\_url": "https://sbox.rapyd.ly/pay/xD8bROm3" } } In this section: Search results -------------- No results found * [Prev](checkout-toolkit-integration.html#idp217357) * [Next](payment-links.html#idp217699) --- # Subscription Item [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * Subscription Item * [Prev](create-subscription-by-hosted-page.html) * [Next](create-subscription-item.html) ##### Subscription Item A product of type **service** that is charged to the customer periodically. The subscription item is associated with a specific subscription that defines how the billing is done. Define a subscription item in one of the following ways: * Define it when you define the subscription. See [Create Subscription](create-subscription.html "Create Subscription") . * Add the subscription item to an existing subscription. See [Create Subscription Item](create-subscription-item.html "Create Subscription Item") . **Prerequisites** * A subscription. See [Create Subscription](create-subscription.html "Create Subscription") . * An active plan. See [Create Plan](create-plan.html "Create Plan") . Methods * [Create Subscription Item](create-subscription-item.html "Create Subscription Item") * [Update Subscription Item](update-subscription-item.html "Update Subscription Item") * [List Subscription Items](list-subscription-items.html "List Subscription Items") * [Retrieve Subscription Item](retrieve-subscription-item.html "Retrieve Subscription Item") * [Delete Subscription Item](delete-subscription-item.html "Delete Subscription Item") Errors * [Subscription Item Errors](subscription-item-errors.html "Subscription Item Errors") Related Information * [Usage Record](usage-record.html "Usage Record") - Adjust a subscription item's quantity for metered billing. In this section: Search results -------------- No results found * [Prev](create-subscription-by-hosted-page.html) * [Next](create-subscription-item.html) --- # Subscription Updated Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription Webhooks](subscription-webhooks.html) * Subscription Updated Webhook * [Prev](subscription-unpaid-webhook.html) * [Next](trial-nearing-end-webhook.html) ###### Subscription Updated Webhook The **CUSTOMER\_SUBSCRIPTION\_UPDATED** webhook is sent when a subscription object is modified. [###### Parameters](#idp317479_body) [###### Webhook Header Parameters](#idp317481_body) [###### Webhook Root Parameters](#idp317521_body) [###### Webhook Data Parameters](#idp317594_body) * CUSTOMER\_SUBSCRIPTION\_UPDATED Webhook * { "id": "wh\_4255d650d6e3b631932919dddb7f4b0a", "type": "CUSTOMER\_SUBSCRIPTION\_UPDATED", "data": { "id": "sub\_005ca057b15771a535469a60ccce98a2", "type": "payment", "status": "active", "billing": "pay\_automatically", "discount": null, "ended\_at": null, "metadata": {}, "trial\_end": null, "created\_at": 1641802550, "canceled\_at": null, "tax\_percent": 0, "trial\_start": null, "payout\_fields": null, "customer\_token": "cus\_d3ed65d5091a8398cc3651bcedec1201", "days\_until\_due": null, "payment\_fields": null, "payment\_method": "card\_85264b18bc1bfb949dbb2d88d3d5c12c", "current\_period\_end": 1641975350, "subscription\_items": { "url": "/v1/subscription\_items?subscription=sub\_005ca057b15771a535469a60ccce98a2", "data": \[{\ "id": "subi\_139cc833a43aa340ee25ca59a4a34ea6",\ "plan": {\ "id": "plan\_a2b5060d3e93d4c32883ac2b39c3f2de",\ "tiers": \[\],\ "amount": 1050,\ "product": {\ "id": "product\_2ddd6f6b43f598d30543ef23ab806b58",\ "name": "Acme music stream",\ "skus": \[\],\ "type": "services",\ "active": true,\ "images": \[\],\ "metadata": {},\ "shippable": false,\ "attributes": \[\],\ "created\_at": 1641481860,\ "unit\_label": "",\ "updated\_at": 1641481860,\ "description": "",\ "package\_dimensions": {\ "width": 0,\ "height": 0,\ "length": 0,\ "weight": 0\ },\ "statement\_descriptor": ""\ },\ "currency": "USD",\ "interval": "day",\ "metadata": {},\ "nickname": "Plan 1050",\ "created\_at": 1641802015,\ "tiers\_mode": "",\ "usage\_type": "licensed",\ "billing\_scheme": "per\_unit",\ "interval\_count": 1,\ "aggregate\_usage": "sum",\ "transform\_usage": {\ "round": "up",\ "divide\_by": 1\ },\ "trial\_period\_days": 0\ },\ "created": 1641802550,\ "metadata": null,\ "quantity": 1\ }\ \], "has\_more": false, "total\_count": 0 }, "billing\_cycle\_anchor": 1641802550, "cancel\_at\_period\_end": false, "current\_period\_start": 1641888950 }, "trigger\_operation\_id": "5df6b51b-0203-4930-a9d0-b51353e31464", "status": "NEW", "created\_at": 1641859559,     "extended\_timestamp": 1641859559431 } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](subscription-unpaid-webhook.html) * [Next](trial-nearing-end-webhook.html) --- # Deleting a Virtual Account [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Virtual Accounts](virtual-accounts.html) * Deleting a Virtual Account * [Prev](virtual-accounts.html#idp243882) * [Next](deleting-a-virtual-account.html#idp243929) #### Deleting a Virtual Account Accept Payments Locally. | `Enterprise` When a virtual account is created, it is linked to a wallet account. Each Rapyd wallet can have multiple virtual accounts. Virtual account numbers are active as long as the wallet account is active. You can delete a Virtual Account linked to an existing wallet. You may decide to do this if the Virtual Account is unused. ### Warning A Virtual Account must have the status of **ACT** (active) in order to be deleted. Once you delete your Virtual Account, the action is **permanent**. Any payment sent to a closed Virtual Account will not be credited to the wallet and will return to the sender. You cannot close your Virtual Account if you have pending wallet transactions. Once your transactions have been settled, you can delete your Virtual Account. [##### Deleting a Virtual Account Workflow](#idp243929_body) ![deleting-virtual-account-flow-1.png](image/16763ca3a79572.png) 1. You ask Rapyd to delete your Virtual Account. 2. Rapyd deletes the Virtual Account. [##### How Deleting a Virtual Account Works](#idp243939_body) Use [Delete Virtual Account](delete-virtual-account.html "Delete Virtual Account") to permanently close your Virtual Account. Description of Path Parameters | Path Parameter | Description | | --- | --- | | virtual\_account\_id | ID of the virtual account, starting with **issuing\_**. | [###### Delete Virtual Account Request](#idp243961_body) * * Request * // Request URL: DELETE https://sandboxapi.rapyd.net/v1/issuing/bankaccounts/:virtual\_account\_id // Message body absent ###### Delete Virtual Account Response * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "d778b3e6-d766-4ed1-8c85-8506cf2482bc" }, "data": { "id": "issuing\_7807a16258d33b908426454b3d1900f7", "deleted": true } } In this section: Search results -------------- No results found * [Prev](virtual-accounts.html#idp243882) * [Next](deleting-a-virtual-account.html#idp243929) --- # List Countries [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Resource Methods](resource-methods.html) * [Localization Methods](localization-methods.html) * List Countries * [Prev](list-supported-languages.html#idp418955) * [Next](list-countries.html#idp419050) ##### List Countries Retrieve a list of all countries. [###### Parameters](#idp419054_body) [###### Request Header Parameters](#idp419056_body) [###### Response Parameters](#idp419106_body) ###### Code Samples * * .NET * using System; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string result = RapydApiRequestSample.Utilities.MakeRequest("GET", "/v1/data/countries"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const result = await makeRequest('GET', '/v1/data/countries'); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $object = make\_request('get', '/v1/data/countries'); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request response = make\_request(method='get', path='/v1/data/countries') pprint(response) * /v1/data/countries * List Countries * curl -X get https://sandboxapi.rapyd.net/v1/data/countries -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "0", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "cf6d191d-088b-41e0-a080-3afe31f3a005" }, "data": \[\ {\ "id": 127,\ "name": "Afghanistan",\ "iso\_alpha2": "AF",\ "iso\_alpha3": "AFG",\ "currency\_code": "AFN",\ "currency\_name": "Afghan afghani",\ "currency\_sign": "؋",\ "phone\_code": "93"\ },\ {\ "id": 128,\ "name": "Åland Islands",\ "iso\_alpha2": "AX",\ "iso\_alpha3": "ALA",\ "currency\_code": "EUR",\ "currency\_name": "Euro",\ "currency\_sign": "€",\ "phone\_code": "358"\ }\ \] } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](list-supported-languages.html#idp418955) * [Next](list-countries.html#idp419050) --- # Saving a European Card While Creating a Payment [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Developer Resources](developer-resources.html) * [Rapyd Collect](rapyd-collect-542537.html) * [Payment](payment-542538.html) * Saving a European Card While Creating a Payment * [Prev](creating-a-payment-with-a-european-card-on-file.html) * [Next](creating-a-payment-with-fx.html) ###### Saving a European Card While Creating a Payment Create a payment and store a customer's card payment information in one operation. A stored card payment method is called a card on file. Sensitive [personal identifying information (PII)](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pii "Personally Identifying Information") is stored securely, and the client has access only to the card ID. A card on file can be defined for unrelated payments, installment plans, or recurring payments. You can define a card multiple times for different payment types. 3DS authentication is required only when the card is saved on the first payment, not for future payments. This procedure is relevant to European **card** payment method types. ### Note You can accomplish the same result using [Add Payment Method to Customer](add-payment-method-to-customer.html "Add Payment Method to Customer") . Prerequisites * Run [Get Payment Method Required Fields](get-payment-method-required-fields.html "Get Payment Method Required Fields") for a European card payment method. ###### How Create a payment as described in [Create Payment](create-payment.html "Create Payment") , with the following settings: * `payment_method` - Specify an object that contains all the required fields for a card payment method. * `payment_method.fields.recurrence_type` - The type of payment. One of the following: * **installment** - A defined number of payments. * **recurring** - Indefinitely recurring payments. * **unscheduled** - Individual unrelated payments. * `initiation_type` - Set as **customer\_present**. * `save_payment_method` - Set as **true**. Create Payment request - partial { "payment\_method": { "type": "gb\_visa\_card", "fields": { "recurrence\_type": "installment", "name": "John Doe", // . . . } }, // . . . "initiation\_type": "customer\_present", "save\_payment\_method": true, } Response - partial "data": { // . . . "payment\_method": "card\_e1571fbb1822d5a3dae219545e33d489", "payment\_method\_data": { // . . . "recurrence\_type": "installment", // . . . }, // . . . } The response shows: * `payment_method` - The secure card payment method ID, a string starting with **card\_**.  In this example: **card\_e1571fbb1822d5a3dae219545e33d489** * `payment_method_data.recurrence_type` - The recurrence type value. In this example: **installment** For a full code example, see **Payment by card - save payment method** on [Create Payment](create-payment.html "Create Payment") . ### Note If you did not set `3d_required` to **false**, the operation is complete when the customer completes [3DS](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_rds "Three-Domain Secure") authentication. ###### Related Information * [Creating a Payment with a European Card on File](creating-a-payment-with-a-european-card-on-file.html "Creating a Payment with a European Card on File") In this section: Sensitive personal information that can be used to identify or locate an individual. PII is protected by law and [PCI](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pci) industry rules. A protocol that provides increased security for card-not-present transactions. Rapyd supports version 2.2. Search results -------------- No results found * [Prev](creating-a-payment-with-a-european-card-on-file.html) * [Next](creating-a-payment-with-fx.html) --- # Trial Nearing End Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription Webhooks](subscription-webhooks.html) * Trial Nearing End Webhook * [Prev](subscription-updated-webhook.html) * [Next](invoice-created-webhook.html) ###### Trial Nearing End Webhook The **CUSTOMER\_SUBSCRIPTION\_TRIAL\_WILL\_END** webhook is sent 3 days before the end of a subscription trial period. [###### Parameters](#idp318043_body) [###### Webhook Header Parameters](#idp318045_body) [###### Webhook Root Parameters](#idp318085_body) [###### Webhook Data Parameters](#idp318158_body) * CUSTOMER\_SUBSCRIPTION\_TRIAL\_WILL\_END Webhook * { "id": "wh\_beee0db0dc021a1a042bfe3945d8e011", "type": "CUSTOMER\_SUBSCRIPTION\_TRIAL\_WILL\_END", "data": { "id": "sub\_1e15fad92f711c3fa1f00db92ef8d91f", "type": "payment", "status": "trialing", "billing": "pay\_automatically", "discount": null, "ended\_at": null, "metadata": {}, "trial\_end": 1669377641, "created\_at": 1668945641, "canceled\_at": null, "tax\_percent": 0, "trial\_start": 1668945641, "payout\_fields": null, "customer\_token": "cus\_c0cf01e6610a80f056d48252d3ad2c37", "days\_until\_due": 30, "payment\_fields": null, "payment\_method": "other\_91c1d735a483f86d6e2631a3bcbb45de", "current\_period\_end": 1669377641, "subscription\_items": { "url": "/v1/subscription\_items?subscription=sub\_1e15fad92f711c3fa1f00db92ef8d91f", "data": \[\ {\ "id": "subi\_511fe66bb4e184d25727f2025e770750",\ "plan": {\ "id": "plan\_7a51ebf97431a4be38777790f2a95d7c",\ "tiers": \[\],\ "amount": 500,\ "product": {\ "id": "product\_4467adcd4c2062664e69b189d8e7a541",\ "name": "SEO",\ "skus": \[\],\ "type": "services",\ "active": true,\ "images": \[\ "64bit-encoded-image-1"\ \],\ "metadata": {\ "merchant\_defined": true\ },\ "shippable": false,\ "attributes": \[\ "frequency"\ \],\ "created\_at": 1668930252,\ "unit\_label": "",\ "updated\_at": 1668930252,\ "description": "SEO services",\ "package\_dimensions": {\ "width": 0,\ "height": 0,\ "length": 0,\ "weight": 0\ },\ "statement\_descriptor": "SEO Services"\ },\ "currency": "USD",\ "interval": "week",\ "metadata": {},\ "nickname": "Weekly SEO Pro",\ "created\_at": 1668945296,\ "tiers\_mode": "",\ "usage\_type": "licensed",\ "billing\_scheme": "per\_unit",\ "interval\_count": 1,\ "aggregate\_usage": "sum",\ "transform\_usage": {\ "round": "up",\ "divide\_by": 1\ },\ "trial\_period\_days": 5\ },\ "created": 1668945641,\ "metadata": null,\ "quantity": 1\ }\ \], "has\_more": false, "total\_count": 1 }, "billing\_cycle\_anchor": 1669377641, "cancel\_at\_period\_end": false, "current\_period\_start": 1668945641 }, "trigger\_operation\_id": "a686c073-7975-434a-80a1-cf837171ae26", "status": "NEW", "created\_at": 1669110656,   "extended\_timestamp": 1669110656545 } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](subscription-updated-webhook.html) * [Next](invoice-created-webhook.html) --- # Pix [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payment Method Types](payment-method-types.html) * [Americas](americas.html) * Pix * [Prev](bancolombia.html#idp228065) * [Next](pix.html#idp228132) ##### Pix A mobile payment method used to transfer bank funds in Brazil. ###### What Is Pix? Pix is an instant payments system that allows real-time transfer and settlement of funds between the bank accounts of participating financial institutions. Checking accounts, savings accounts, and prepaid payments accounts can be used to transfer funds with Pix. The service is free to all retail customers. Pix benefits the user by utilizing QR (Quick Response) codes to make direct bank transfers to merchants, in addition to person-to-person transfers. Users can initiate a payment with Pix using their mobile phone. Hundreds of participating banks and financial institutions in Brazil have joined Pix. ###### User Experience When a customer wants to make a payment online, they will select the Pix payment method, provide payer details, login into their mobile bank app, receive and scan a QR code, and confirm payment. 1. Select the Pix payment method and be redirected to the landing page. ![643e7e279bd8e.png](image/16763ca358bcae.png) 2. Add the payer details Receive a QR code to proceed with the payment process ![643e7e29bc757.png](image/16763ca359754c.png) 3. Log in to your preferred mobile banking app and click on **Pix** ![643e7e2c7089b.jpg](image/16763ca35a11ed.jpg) 4. Scan the QR code ![643e7e2de5c5a.jpg](image/16763ca35aabdf.jpg) 5. Or paste the QR code (optional) ![643e7e29bc757.png](image/16763ca359754c.png) 6. Confirm the payment ![643e7e3254577.jpg](image/16763ca35b3990.jpg) 7. Redirect to the payment confirmation page ![643e7e33b4f85.jpg](image/16763ca35bcfeb.jpg) ###### Pix Details **Note**: The payment method **br\_pix\_cb\_bank** is used for cross border payments. | | | | --- | --- | | Details | Description | | Payment Method Category | Bank Redirect | | Payment Request String | PMT = br\_pix\_cb\_bank

PMT Name = PIX CB bank payment

PMT = br\_pix\_bank

PMT Name = PIX bank payment | | Country | Brazil | | Presentment Currency | BRL | | Refunds/Reversal | No | | Recurring | No | | Disputes/Chargebacks | No | | Transaction Limits | Maximum daily limit: No limit

Maximum nightly limit: Up to 1,000 BRL | | Settlement Timeframe | Real-time | | Rapyd Guide | See [Bank Redirect](bank-redirect.html "Bank Redirect") | In this section: Search results -------------- No results found * [Prev](bancolombia.html#idp228065) * [Next](pix.html#idp228132) --- # Cancel Subscription [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription](subscription-364807.html) * Cancel Subscription * [Prev](retrieve-subscription.html) * [Next](delete-discount-from-subscription.html) ###### Cancel Subscription Delete a subscription from the database. When the subscription is canceled immediately, this method triggers the following webhooks: * [Subscription Canceled Webhook](subscription-canceled-webhook.html "Subscription Canceled Webhook") . This webhook contains the same information as the response. * [Subscription Updated Webhook](subscription-updated-webhook.html "Subscription Updated Webhook") * [Invoice Created Webhook](invoice-created-webhook.html "Invoice Created Webhook") The following asynchronous webhook provides information about later changes to the subscription object: * [Invoice Payment Succeeded Webhook](invoice-payment-succeeded-webhook.html "Invoice Payment Succeeded Webhook") When the subscription is canceled at the end of the current billing period, all of these webhooks are triggered asynchronously. [###### Parameters](#idp304918_body) [###### Request Path Parameters](#idp304920_body) * * subscription * ID of the subscription. String starting with **sub\_**. [###### Request Query Parameters](#idp304930_body) * * cancel\_at\_period\_end * Determines when the subscription is canceled. * **true** - Cancels the subscription at the end of the current period. * **false** - Cancels the subscription immediately. false [###### Request Header Parameters](#idp304947_body) [###### Response Parameters](#idp304997_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string subscriptionItem = "sub\_5b47720e0281b501092a695773fb2279"; string result = RapydApiRequestSample.Utilities.MakeRequest("DELETE", $"/v1/payments/subscriptions/{subscriptionItem}"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const result = await makeRequest( 'DELETE', '/v1/payments/subscriptions/sub\_5b47720e0281b501092a695773fb2279' ); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $object = make\_request('delete', '/v1/payments/subscriptions/sub\_5b47720e0281b501092a695773fb2279'); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request result = make\_request(method='delete', path='/v1/payments/subscriptions/sub\_c120969b649d4a029b660228e00c8d97') pprint(result) * /v1/payments/subscriptions/:subscription * Cancel Subscription Immediately * curl -X delete https://sandboxapi.rapyd.net/v1/payments/subscriptions/sub\_6f634b7aced3e9f872f66fc8ef708ae5 -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "ecc6d7bc-fa24-4659-a570-3190719b0d6e" }, "data": { "id": "sub\_6f634b7aced3e9f872f66fc8ef708ae5", "billing": "pay\_automatically", "billing\_cycle\_anchor": 1701267785, "created\_at": 1701267785, "customer\_token": "cus\_da95b15aa75f76e8d5ac42293e326ddd", "days\_until\_due": 30, "metadata": {}, "tax\_percent": 0, "cancel\_at\_period\_end": false, "canceled\_at": 1701854001, "current\_period\_end": 1703859785, "current\_period\_start": 1701267785, "discount": null, "ended\_at": null, "subscription\_items": { "data": \[\ {\ "id": "subi\_60ab178c14ab3cb0d74ff82458485963",\ "created": 1701267785,\ "metadata": null,\ "quantity": 5,\ "plan": {\ "id": "plan\_811bfbf126ea0cbabeee447cdb1486c2",\ "aggregate\_usage": "sum",\ "amount": 0,\ "billing\_scheme": "tiered",\ "created\_at": 1701267773,\ "currency": "USD",\ "interval": "month",\ "interval\_count": 1,\ "metadata": {\ "merchant\_defined": true\ },\ "product": {\ "id": "product\_c07612df254fce2aaba1854e3ce2008b",\ "active": true,\ "attributes": \[\ "location",\ "size"\ \],\ "created\_at": 1701267766,\ "description": "Monthly parking - covered area, compact car",\ "images": \[\],\ "metadata": {},\ "name": "Monthly parking",\ "package\_dimensions": {\ "height": 0,\ "length": 0,\ "weight": 0,\ "width": 0\ },\ "shippable": false,\ "skus": \[\],\ "statement\_descriptor": "",\ "type": "service",\ "unit\_label": "",\ "updated\_at": 1701267766\ },\ "nickname": "sbp",\ "tiers": \[\ {\ "amount": 15,\ "up\_to": "inf",\ "flat\_amount": 0\ }\ \],\ "tiers\_mode": "volume",\ "transform\_usage": {\ "divide\_by": 0,\ "round": ""\ },\ "trial\_period\_days": 0,\ "usage\_type": "licensed",\ "active": true\ }\ }\ \], "has\_more": false, "total\_count": 1, "url": "/v1/subscription\_items?subscription=sub\_6f634b7aced3e9f872f66fc8ef708ae5" }, "status": "active", "trial\_end": null, "trial\_start": null, "payment\_method": "card\_160e5257c76e6c33f35c1300e19a885a", "payment\_fields": null, "payout\_fields": null, "type": "payment", "simultaneous\_invoice": true, "enable\_retries": true, "retry\_options": { "max\_retries": 3, "retry\_interval": "days", "retry\_schedule": "fixed", "retry\_interval\_count": 3 } } } * Cancel Subscription at end of billing cycle * curl -X delete https://sandboxapi.rapyd.net/v1/payments/subscriptions/sub\_6f634b7aced3e9f872f66fc8ef708ae5?cancel\_at\_period\_end=true -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "e172e73d-3892-437f-ac6d-1d8ac3913f31" }, "data": { "id": "sub\_6f634b7aced3e9f872f66fc8ef708ae5", "billing": "pay\_automatically", "billing\_cycle\_anchor": 1701267785, "created\_at": 1701267785, "customer\_token": "cus\_da95b15aa75f76e8d5ac42293e326ddd", "days\_until\_due": 30, "metadata": {}, "tax\_percent": 0, "cancel\_at\_period\_end": true, "canceled\_at": 1701853806, "current\_period\_end": 1703859785, "current\_period\_start": 1701267785, "discount": null, "ended\_at": null, "subscription\_items": { "data": \[\ {\ "id": "subi\_60ab178c14ab3cb0d74ff82458485963",\ "created": 1701267785,\ "metadata": null,\ "quantity": 5,\ "plan": {\ "id": "plan\_811bfbf126ea0cbabeee447cdb1486c2",\ "aggregate\_usage": "sum",\ "amount": 0,\ "billing\_scheme": "tiered",\ "created\_at": 1701267773,\ "currency": "USD",\ "interval": "month",\ "interval\_count": 1,\ "metadata": {\ "merchant\_defined": true\ },\ "product": {\ "id": "product\_c07612df254fce2aaba1854e3ce2008b",\ "active": true,\ "attributes": \[\ "location",\ "size"\ \],\ "created\_at": 1701267766,\ "description": "Monthly parking - covered area, compact car",\ "images": \[\],\ "metadata": {},\ "name": "Monthly parking",\ "package\_dimensions": {\ "height": 0,\ "length": 0,\ "weight": 0,\ "width": 0\ },\ "shippable": false,\ "skus": \[\],\ "statement\_descriptor": "",\ "type": "service",\ "unit\_label": "",\ "updated\_at": 1701267766\ },\ "nickname": "sbp",\ "tiers": \[\ {\ "amount": 15,\ "up\_to": "inf",\ "flat\_amount": 0\ }\ \],\ "tiers\_mode": "volume",\ "transform\_usage": {\ "divide\_by": 0,\ "round": ""\ },\ "trial\_period\_days": 0,\ "usage\_type": "licensed",\ "active": true\ }\ }\ \], "has\_more": false, "total\_count": 1, "url": "/v1/subscription\_items?subscription=sub\_6f634b7aced3e9f872f66fc8ef708ae5" }, "status": "active", "trial\_end": null, "trial\_start": null, "payment\_method": "card\_160e5257c76e6c33f35c1300e19a885a", "payment\_fields": null, "payout\_fields": null, "type": "payment", "simultaneous\_invoice": true, "enable\_retries": true, "retry\_options": { "max\_retries": 3, "retry\_interval": "days", "retry\_schedule": "fixed", "retry\_interval\_count": 3 } } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](retrieve-subscription.html) * [Next](delete-discount-from-subscription.html) --- # List Supported Languages [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Resource Methods](resource-methods.html) * [Localization Methods](localization-methods.html) * List Supported Languages * [Prev](localization-methods.html) * [Next](list-supported-languages.html#idp418955) ##### List Supported Languages Retrieve a list of the languages supported for hosted pages. A hosted page can appear in many foreign languages. The `language` (or `merchant_language`) field determines the default language of a hosted page. The field type is string. Use lower-case letters for the value. * If no value is specified, the language of the user's browser is used. * If the language of the user's browser cannot be determined, the default language is English. Relevant to: * [Display Issued Card Details to Customer](display-issued-card-details-to-customer.html "Display Issued Card Details to Customer") * [Create Subscription by Hosted Page](create-subscription-by-hosted-page.html "Create Subscription by Hosted Page") * [Create Checkout Page](create-checkout-page.html "Create Checkout Page") * [Create Payment Link](create-payment-link.html "Create Payment Link") * [Create Beneficiary Tokenization Page](create-beneficiary-tokenization-page.html "Create Beneficiary Tokenization Page") * [Create Card Token](create-card-token.html "Create Card Token") * [Create Identity Verification Page](create-identity-verification-page.html "Create Identity Verification Page") * [Activate Issued Card Using Hosted Page](activate-issued-card-using-hosted-page.html "Activate Issued Card Using Hosted Page") * [Create Hosted Page for PIN Management](create-hosted-page-for-pin-management.html "Create Hosted Page for PIN Management") [###### Parameters](#idp418959_body) [###### Request Header Parameters](#idp418961_body) [###### Response Parameters](#idp419011_body) * * languages * List of the languages supported for hosted pages. * * name * Name of the language in English. * * iso\_alpha2 * ISO 639-1 code for the language. 2 letters, with suffix where relevant. * /v1/hosted/config/supported\_languages * List Hosted Page Supported Languages * curl -X get https://sandboxapi.rapyd.net/v1/hosted/config/supported\_languages -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here'-H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "f1409a45-92ea-4e49-9fa6-a667fbf44826" }, "data": { "languages": \[\ {\ "name": "English",\ "iso\_alpha2": "en"\ },\ {\ "name": "Spanish",\ "iso\_alpha2": "es"\ },\ {\ "name": "Simplified Chinese",\ "iso\_alpha2": "zh-cn"\ },\ {\ "name": "Traditional Chinese",\ "iso\_alpha2": "zh-tw"\ },\ {\ "name": "Korean",\ "iso\_alpha2": "ko"\ },\ {\ "name": "Portuguese",\ "iso\_alpha2": "pt"\ },\ {\ "name": "Indonesian",\ "iso\_alpha2": "id"\ },\ {\ "name": "Thai",\ "iso\_alpha2": "th"\ },\ {\ "name": "Tagalog",\ "iso\_alpha2": "tl"\ },\ {\ "name": "German",\ "iso\_alpha2": "de"\ },\ {\ "name": "Icelandic",\ "iso\_alpha2": "is"\ },\ {\ "name": "Dutch",\ "iso\_alpha2": "nl"\ },\ {\ "name": "Vietnamese",\ "iso\_alpha2": "vi"\ },\ {\ "name": "Malay",\ "iso\_alpha2": "ms"\ },\ {\ "name": "Japanese",\ "iso\_alpha2": "ja"\ },\ {\ "name": "Hindi",\ "iso\_alpha2": "hi"\ },\ {\ "name": "French",\ "iso\_alpha2": "fr"\ },\ {\ "name": "Russian",\ "iso\_alpha2": "ru"\ },\ {\ "name": "Ukrainian",\ "iso\_alpha2": "uk"\ },\ {\ "name": "Greek",\ "iso\_alpha2": "el"\ },\ {\ "name": "Italian",\ "iso\_alpha2": "it"\ },\ {\ "name": "Turkish",\ "iso\_alpha2": "tr"\ },\ {\ "name": "Lithuanian",\ "iso\_alpha2": "lt"\ },\ {\ "name": "Estonian",\ "iso\_alpha2": "et"\ },\ {\ "name": "Slovak",\ "iso\_alpha2": "sk"\ },\ {\ "name": "Slovene",\ "iso\_alpha2": "sl"\ },\ {\ "name": "Danish",\ "iso\_alpha2": "dk"\ },\ {\ "name": "Hebrew",\ "iso\_alpha2": "he"\ }\ \] } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](localization-methods.html) * [Next](list-supported-languages.html#idp418955) --- # Checkout Page [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * Checkout Page * [Prev](payment-errors.html) * [Next](create-checkout-page.html) #### Checkout Page Defines a customer-facing page that collects [personal identifying information (PII)](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pii "Personally Identifying Information") from the customer and creates a payment. The checkout page can be configured as a standalone page or an i-frame inside the client's own web page. See [Rapyd Checkout Overview](rapyd-checkout-overview.html "Rapyd Checkout Overview") . The client can configure the length of time that the hosted page is usable. When the customer submits the page, Rapyd sends the client one or more webhooks. ### Note Transactions with 3DS authentication must be authenticated within 15 minutes. Methods * [Create Checkout Page](create-checkout-page.html "Create Checkout Page") * [Retrieve Checkout Page](retrieve-checkout-page.html "Retrieve Checkout Page") Errors * [Checkout Errors](checkout-errors.html "Checkout Errors") In this section: Sensitive personal information that can be used to identify or locate an individual. PII is protected by law and [PCI](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pci) industry rules. Search results -------------- No results found * [Prev](payment-errors.html) * [Next](create-checkout-page.html) --- # Payment Link [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * Payment Link * [Prev](invoice-updated-webhook.html) * [Next](create-payment-link.html) #### Payment Link Reuse a hosted payment page. A customer uses the payment link to open a hosted payment page. The customer provides required information and submits the payment on a Rapyd Checkout page. For more information, see [Checkout Page](checkout-page.html "Checkout Page") . To view payment links after creation, use [Retrieve Payment Link](retrieve-payment-link.html "Retrieve Payment Link") or the Client Portal. Methods * [Create Payment Link](create-payment-link.html "Create Payment Link") * [Retrieve Payment Link](retrieve-payment-link.html "Retrieve Payment Link") In this section: Search results -------------- No results found * [Prev](invoice-updated-webhook.html) * [Next](create-payment-link.html) --- # Digital Wallet Provisioning [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Issuing](rapyd-issuing.html) * Digital Wallet Provisioning * [Prev](hosted-page-for-virtual-cards.html#idp245434) * [Next](digital-wallet-provisioning.html#idp245445) #### Digital Wallet Provisioning You can add an issued card to a digital wallet through a process called provisioning. A card is provisioned when the Primary Account Number (PAN) of the issued card is tokenized and stored as a digital token. The digital token is then added to the digital wallet to store the card information. Multiple digital tokens can be assigned to the same card. You can provision cards issued by Rapyd and add them to a digital wallet such as Apple Pay and Google Pay. There are two main types of provisioning: **manual provisioning** and **in-app provisioning**. [##### Manual Provisioning](#idp245445_body) **Manual provisioning** refers to the process where the customer's card details are manually added to a local mobile digital wallet stored on a mobile device. This action is usually performed by the customer. [##### In-app Provisioning](#idp245449_body) **In-app provisioning** refers to the process where the customer's card details are added to the digital wallet using an app created by the issuer. Manual and in-app provisioning are similar, but require different levels of verification for transmitting and storing Personal Identifying Information (PII). You can use the Rapyd API to provision issued cards to a digital wallet. [##### Token Management](#idp245454_body) You can manage your card tokens using the Rapyd API. You can create tokens, disable tokens, and change the token status. The flow chart below describes the token lifecycle and demonstrates the relationship between the various token statuses. ![wallet-provisioning-flow-1.png](image/16763ca3b939f8.png) The token statuses are summarized in the table below: Description of Token Statuses | Token Status | Description | | --- | --- | | Created | Creation of the token is in progress. | | Active | The token is active and can be used to make payments. | | Pending | The token is pending activation. Relevant for tokens requiring orange verification. | | Suspended | The token is temporarily suspended and can be activated again. | | Deactivated | The token has been deactivated or deleted. | ###### Token Request Verification When a card token is requested, certain levels of verification may be required by the issuer. The following table describes the different verification levels and their requirements: Description of Verification Levels | Verification Level | Provisioning Type | Description | | --- | --- | --- | | Green Verification | In-app | No additional verification is required for the token request | | Yellow Verification | Manual / In-app | Enter your One Time Password (OTP) to complete the verification | | Orange Verification | Manual / In-app | Enter your One Time Password and speak with your issuer over the phone. Contact your issuer for additional verification. | [##### Use Case](#idp245537_body) As a merchant partnered with Rapyd, you would like to provision issued cards to your local application. You integrate with Google Pay or Apple Pay to expand the functionality of your mobile application. You use the Rapyd API to enable card provisioning. Customers can add their cards to their Google Pay wallet or Apple Pay wallet using your application, improving their experience. [##### Manual Provisioning Workflow](#idp245540_body) ![wallet-provisioning-flow-2.png](image/16763ca3b9c632.png) 1. The customer manually adds their card details to a digital wallet. 2. Rapyd processes the token information, sends a OTP verification. 3. Token is created by the Card Network. 4. Token is activated in the digital wallet servers. 5. Customer completes the verification (either with OTP, or OTP and Issuer Verification). [##### In-app Provisioning Workflow](#idp245556_body) ![wallet-provisioning-flow-3.png](image/16763ca3ba5009.png) 1. You add the customer card details via your application. 2. The provisioning request is sent to Rapyd. 3. The customer completes the verification (OTP and Issuer Verification). 4. You get a response payload with the token. You forward the token to the mobile ewallet app to create the digital token. ### PCI Certification Only clients with [PCI-DSS](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_dss "Payment Card Industry Data Security Standard") certification can handle personal identifying information for cards. This method is available to merchants who have signed a special agreement with Rapyd. [##### How In-App Provisioning to a Digital Wallet Works](#idp245574_body) ###### In-App Provisioning Requirements Before you can enable in-app provisioning using the Rapyd API, you must also integrate with Apple Pay or Google Pay developer platforms. Each digital wallet service has a set of requirements you must meet in order to integrate the Google Pay or Apple Pay functionality into your application. After integration, the Rapyd API enables you to use in-app provisioning for cards issued by Rapyd. For more specific information about how to integrate with Google Pay or Apple Pay, view the [Apple developer documentation](https://developer.apple.com/documentation/passkit_apple_pay_and_wallet/apple_pay/setting_up_apple_pay) and the [Google developer documentation](https://developers.google.com/pay/api/android/guides/setup) . Meet the following requirements to complete your integration: 1. Integrate with the card issuer. **Note**: Rapyd, as your card issuer, will interact with the digital wallet servers to pass encrypted payload data and tokenize card information. 2. Register as a developer with your digital wallet provider (Google Pay or Apple Pay). 3. Display the Apple Pay or Google Pay button in your application. 4. Initiate the provisioning request. **Note**: You will use the Rapyd API to initiate the provisioning request. ###### In-app Provisioning You can provision a card to a digital wallet. Use the applicable path parameters for the request: Description of Path Parameters | Path Parameter | Description | | --- | --- | | google\_pay | The Google Pay digital wallet used for card provisioning. | | apple\_pay | The Apple Pay digital wallet used for card provisioning. | **Note**: The `google_pay` path parameter is used in the example request below. ###### In-app Provisioning Request * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/issuing/cards/:card\_id/card\_tokens/google\_pay { "client\_wallet\_provider": "40010075001", "client\_wallet\_account\_id": "4CEBB556CBB31B94", "client\_device\_id": "je-UCHgwQ97Icy-wrI\_f48PU" } ###### In-app Provisioning Response * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "11b95b4b-7783-4062-b32f-d607c3f5bad1" }, "data": { "PaymentInstrumentData": "", "UserAddress": { } } } [##### How Token Management for Cards Works](#idp245645_body) [###### List Available Card Tokens](#idp245647_body) You can list the existing card tokens attached to a specific card. Use the following parameters: Description of Path Parameters | Path Parameter | Description | | --- | --- | | card\_id | The ID of the card starting with **card\_**. | ###### List Available Card Tokens Request * * Request * // Request URL: GET https://sandboxapi.rapyd.net/v1/issuing/cards/:card\_id/card\_tokens // Message body absent ###### List Available Card Tokens Response * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "386fcaf5-d50c-43b0-9d12-ead3d3c0ef11" }, "data": \[ \ { \ "HashedTokenId": "p37Y9skr7289mUWKrCSss+L47yjDGkEcD5BOuYXRMV0=", \ "TokenIdLast4": "L011", \ "DeviceId": "TestDeviceId987654321011", \ "DeviceManufacturer": "LG", \ "DeviceLanguageCode": "is", \ "DeviceName": "G8 Feitur V", \ "CreationTime": "2019-04-01T00:00:00", \ "TokenRequestorId": "40010030273", \ "TokenRequestorName": "Apple Pay", \ "Status": "INACTIVE" \ }, \ { \ "HashedTokenId": "WcOpDxmzhWN9SCp2nTf0mtIN+6DKHBr9/uNak/nTXg4=", \ "TokenIdLast4": "L012", \ "DeviceId": "TestDeviceId987654321012", \ "DeviceManufacturer": "LG", \ "DeviceLanguageCode": "is", \ "DeviceName": "G8 Feitur V", \ "CreationTime": "2019-04-01T00:00:00", \ "TokenRequestorId": "40010075001", \ "TokenRequestorName": "Google Pay", \ "Status": "SUSPENDED" \ }, \ { \ "HashedTokenId": "rUIJkyoz4J8EvxsZuedskKjA+fOYluu0GRZXARd2ytE=", \ "TokenIdLast4": "L013", \ "DeviceId": "TestDeviceId987654321013", \ "DeviceManufacturer": "LG", \ "DeviceLanguageCode": "is", \ "DeviceName": "G8 Feitur V", \ "CreationTime": "2019-04-01T00:00:00", \ "TokenRequestorId": "40010051602", \ "TokenRequestorName": "Amazon", \ "Status": "ACTIVE" \ }, \ { \ "HashedTokenId": "9Q5xEzliI1Iyx0FU4gWKML2YUnGEUuCGVAExDHjKsts=", \ "TokenIdLast4": "L014", \ "DeviceId": "TestDeviceId987654321014", \ "DeviceManufacturer": "LG", \ "DeviceLanguageCode": "is", \ "DeviceName": "G8 Feitur V", \ "CreationTime": "2019-04-01T00:00:00", \ "TokenRequestorId": "40010075839", \ "TokenRequestorName": "Netflix", \ "Status": "DEACTIVATED" \ } \ \] } [###### Change Token Status](#idp245688_body) You can change the status of your card token to one of the following statuses: * Active * Pending * Suspended * Deactivated Use the following path parameters and required fields in the request: Description of Path Parameters | Path Parameter | Description | | --- | --- | | activate | The token will be activated. | | reactivate | The token will be reactivated. | | suspend | The token will be suspended. | **Note**: The `suspend` path parameter will be used in the example request below Use the following required fields in the request: Description of Required Fields | Field | Description | | --- | --- | | hashed\_token\_id | A unique identifier for the token. | | performed\_by | The user submitting the token status change. Character length: 50. | | request\_reason | The reason for the token status change. Character length: 5 - 254. | ###### Change Token Status Request * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/issuing/cards/:card\_id/card\_tokens/suspend { "hashed\_token\_id": "dB/xDjJzxcwruDMTMLmdjs7UZ7JW97CHKwmMgg9hk14=", "performed\_by": "user name", "request\_reason": "some reason" } ###### Change Token Status Response * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "60e0671a-cae9-4568-bb8c-8db58677dc46" } } In this section: Regulations developed for the [payment card industry](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pci) for data security and protection against fraud. Search results -------------- No results found * [Prev](hosted-page-for-virtual-cards.html#idp245434) * [Next](digital-wallet-provisioning.html#idp245445) --- # Create Checkout Page [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Checkout Page](checkout-page.html) * Create Checkout Page * [Prev](checkout-page.html) * [Next](create-checkout-page.html#idp295515) ##### Create Checkout Page Create a checkout page that makes a payment. This method can be used by all clients without the need for PCI certification. After the customer submits the information on the hosted page, Rapyd processes the request and sends you one or more webhooks, depending on the payment method and parameters of the request. See [Create Payment](create-payment.html "Create Payment") . The [Payment Succeeded Webhook](payment-succeeded-webhook.html "Payment Succeeded Webhook") is sent when the customer successfully submits the information on the hosted page. ### Note * If you create the checkout page specifying the `customer` field, only the customer’s default payment method appears on the checkout page. * The `amount` must be specified in either `amount` or the `amount` field of each item in the cart. * For setting up digital wallet payments on a checkout page, see [Recurring Digital Wallet Payments](recurring-digital-wallet-payments.html "Recurring Digital Wallet Payments") . * If the payment method type is Google Pay, the customer must open the checkout page in a single browser window. On an Apple device, the customer must use Safari. * To enable account funding transactions, contact [Rapyd Client Support](https://support.rapyd.net) . [###### Parameters](#idp295519_body) [###### Request Header Parameters](#idp295521_body) [###### Request Body Parameters](#idp295581_body) [###### Response Parameters](#idp296271_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var requestObj = new { currency = "USD", customer = "cus\_b3b8ad0174f4c415c663b35bcf542192", metadata = new { merchant\_defined = true }, amount = 10 }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/checkout", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { currency: 'USD', customer: 'cus\_b3b8ad0174f4c415c663b35bcf542192', metadata: { merchant\_defined: true }, amount: 10 }; const result = await makeRequest('POST', '/v1/checkout', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; $body = \[\ "currency" => "USD"\ "customer" => "cus\_b3b8ad0174f4c415c663b35bcf542192",\ "amount" => 10 \ \]; try { $object = make\_request('post', '/v1/checkout', $body); var\_dump($object); } catch(Exception $e) { echo "Error => $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request checkout\_page = { "amount": 100, "complete\_payment\_url": "http://example.com/complete", "country": "SG", "currency": "SGD", "customer": "cus\_9761efaa881b6edeab25e9fbfec1ddf5", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "0912-2021", "language": "en", "metadata": { "merchant\_defined": True }, "expiration": 1632027189, "payment\_method\_types\_include": \[\ "sg\_grabpay\_ewallet"\ \] } result = make\_request(method='post', path='/v1/checkout', body=checkout\_page) pprint(result) * /v1/checkout * Create Checkout Page for customer * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 100, "complete\_payment\_url": "http://example.com/complete", "country": "SG", "currency": "SGD", "customer": "cus\_9761efaa881b6edeab25e9fbfec1ddf5", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "0912-2021", "language": "en", "metadata": { "merchant\_defined": true }, "payment\_method\_types\_include": \[\ "sg\_grabpay\_ewallet"\ \], "expiration": 1632027189 } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "b8f3e180-c7ea-4ac3-86f1-c47d93117cce" }, "data": { "id": "checkout\_b1284339d1dd677c8163bcea1c9cfcf2", "status": "NEW", "language": "en", "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1632645328, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_b1284339d1dd677c8163bcea1c9cfcf2", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "SG", "currency": "SGD", "amount": 100, "payment": { "id": null, "amount": 100, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0912-2021", "customer\_token": "cus\_9761efaa881b6edeab25e9fbfec1ddf5", "payment\_method\_data": {}, "expiration": 1632027189, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": null, "payment\_method\_types\_include": \[\ "sg\_grabpay\_ewallet"\ \], "payment\_method\_types\_exclude": null, "customer": "cus\_9761efaa881b6edeab25e9fbfec1ddf5", "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1631435728, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page for guest * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 123.45, "complete\_payment\_url": "http://example.com/complete", "country": "SG", "currency": "SGD", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "0912-2021", "language": "en", "metadata": { "merchant\_defined": true }, "payment\_method\_types\_include": \[\ "sg\_grabpay\_ewallet"\ \], "expiration": 1632027189 } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "4482961e-7732-49dc-8d0a-2c79491210a3" }, "data": { "id": "checkout\_408606a46b1e1e60507a2b2fc578143c", "status": "NEW", "language": "en", "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1632643036, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_408606a46b1e1e60507a2b2fc578143c", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "SG", "currency": "SGD", "amount": 123.45, "payment": { "id": null, "amount": 123.45, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0912-2021", "customer\_token": null, "payment\_method\_data": {}, "expiration": 1632027189, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": null, "payment\_method\_types\_include": \[\ "sg\_grabpay\_ewallet"\ \], "payment\_method\_types\_exclude": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1631433436, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page using categories * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 100, "complete\_payment\_url": "http://example.com/complete", "country": "SG", "currency": "SGD", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "0912-2021", "language": "en", "metadata": { "merchant\_defined": true }, "payment\_method\_type\_categories": \[\ "card",\ "cash"\ \] } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "b8c00798-8b17-4b8b-8d93-d8fc487eba2b" }, "data": { "id": "checkout\_bf9648075ed09a2b793e288e659df17d", "status": "NEW", "language": "en", "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1632645913, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_bf9648075ed09a2b793e288e659df17d", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "SG", "currency": "SGD", "amount": 100, "payment": { "id": null, "amount": 100, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0912-2021", "customer\_token": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": \[\ "card",\ "cash"\ \], "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1631436313, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page with additional fees * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 128.45, "complete\_payment\_url": "http://example.net/complete", "country": "SG", "currency": "SGD", "error\_payment\_url": "http://example.net/error", "merchant\_reference\_id": "0912-2021", "language": "en", "requested\_currency": "USD", "metadata": { "merchant\_defined": true }, "payment\_method\_type\_categories": \[\ "card"\ \], "payment\_fees": { "transaction\_fee": { "calc\_type": "gross", "value": 10, "fee\_type": "percentage" }, "fx\_fee": { "calc\_type": "gross", "value": 2 } } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "b01d9001-e17a-4af7-b868-8d9bd83534ad" }, "data": { "id": "checkout\_46a632d38fe469a2962e7bd6b637baff", "status": "NEW", "language": "en", "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1632646186, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_46a632d38fe469a2962e7bd6b637baff", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "SG", "currency": "SGD", "amount": 128.45, "payment": { "id": null, "amount": 128.45, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0912-2021", "customer\_token": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.net/complete", "error\_payment\_url": "http://example.net/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": 1.301492, "merchant\_requested\_currency": "USD", "merchant\_requested\_amount": 110.53, "fixed\_side": "buy", "payment\_fees": { "fx\_fee": { "value": 2, "calc\_type": "gross" }, "net\_fees": null, "gross\_fees": null, "transaction\_fee": { "value": 10, "fee\_type": "percentage", "calc\_type": "gross" } }, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": \[\ "card"\ \], "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1631436586, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page with Complete and Cancel URLs * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 223.48, "complete\_payment\_url": "http://example.net/complete", "complete\_checkout\_url": "http://example.net/complete\_checkout", "cancel\_checkout\_url": "http://example.net/cancel\_checkout", "country": "SG", "currency": "SGD", "error\_payment\_url": "http://example.net/error", "merchant\_reference\_id": "0912-2021", "language": "en", "metadata": { "merchant\_defined": true }, "payment\_method\_type\_categories": \[\ "card"\ \] } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "8fc0771e-f522-4b13-8ef2-90eddb075e2b" }, "data": { "id": "checkout\_38294f69e0b783fce134d9a1060beab2", "status": "NEW", "language": "en", "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1632647945, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_38294f69e0b783fce134d9a1060beab2", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "http://example.net/cancel\_checkout", "complete\_checkout\_url": "http://example.net/complete\_checkout", "country": "SG", "currency": "SGD", "amount": 223.48, "payment": { "id": null, "amount": 223.48, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0912-2021", "customer\_token": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.net/complete", "error\_payment\_url": "http://example.net/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": \[\ "card"\ \], "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1631438345, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } }s * Create Checkout Page with custom elements * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 127.95, "complete\_payment\_url": "http://example.com/complete", "country": "SG", "currency": "SGD", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "0912-2021", "language": "en", "metadata": { "merchant\_defined": true }, "custom\_elements": { "billing\_address\_collect": true, "cardholder\_name": "John Doe" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "032d687c-c6f7-47af-b6d1-d7ce178d4d4a" }, "data": { "id": "checkout\_fd7dbfb7fb8bcfe0414de4222a12cf3f", "status": "NEW", "language": "en", "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Doc Team", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1657546131, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_fd7dbfb7fb8bcfe0414de4222a12cf3f", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "SG", "currency": "SGD", "amount": 127.95, "payment": { "id": null, "amount": 127.95, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0912-2021", "customer\_token": null, "payment\_method": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "customer": null, "custom\_elements": { "cardholder\_name": "John Doe", "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": true, "dynamic\_currency\_conversion": false }, "timestamp": 1656336531, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page with cart items * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "country": "SG", "currency": "SGD", "customer": "cus\_b1077c22ddd33ec36a13cf56849feeab", "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "0314-2024", "language": "en", "expiration": 1711365790, "cart\_items": \[\ {\ "name": "Bluetooth speaker model SJ-8097",\ "amount": 120.00,\ "percent\_off": 10,\ "quantity": 2\ },\ {\ "name": "Pack of rechargeable batteries model 90-P",\ "amount": 5,\ "amount\_off": 1,\ "quantity": 1\ }\ \], "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "11564114-c490-4d0f-adf5-473882e0d9ae" }, "data": { "id": "checkout\_6887308e5d44f31389fef4220dbf2e13", "status": "NEW", "language": "en", "merchant\_color": "3232ff", "merchant\_logo": "https://iconslib.rapyd.net/merchant-logos/ohpc\_b52ae595fb6c963acd021c783daed7e3/Rapyd\_sign\_45cm.png", "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": { "url": "https://rapyd\_support.net", "email": "rapydsupport@gmail.com", "phone\_number": "555555555" }, "merchant\_alias": "Rapyd", "merchant\_terms": "https://rapyd\_support.net", "merchant\_privacy\_policy": "https://rapyd\_privacy.net", "page\_expiration": 1711545850, "redirect\_url": "https://sandboxcheckout.rapyd.net/?token=checkout\_6887308e5d44f31389fef4220dbf2e13", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://example.com/cancel\_checkout", "complete\_checkout\_url": "https://example.com/complete\_checkout", "country": "SG", "currency": "SGD", "amount": 220, "payment": { "id": null, "amount": 220, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0314-2024", "customer\_token": "cus\_b1077c22ddd33ec36a13cf56849feeab", "payment\_method": null, "payment\_method\_data": {}, "expiration": 1711365790, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": null, "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "account\_funding\_transaction": null, "customer": "cus\_b1077c22ddd33ec36a13cf56849feeab", "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1710336250, "payment\_expiration": null, "cart\_items": \[\ {\ "name": "Bluetooth speaker model SJ-8097",\ "amount": 108,\ "quantity": 2,\ "image": null,\ "discount": 12,\ "percent\_off": 10\ },\ {\ "name": "Pack of rechargeable batteries model 90-P",\ "amount": 4,\ "quantity": 1,\ "image": null,\ "discount": 1,\ "amount\_off": 1\ }\ \], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page with FX - fixed side buy * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 100, "complete\_payment\_url": "http://example.com/complete", "country": "SG", "currency": "SGD", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "0912-2021", "language": "en", "requested\_currency": "USD", "fixed\_side": "buy", "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "c22d5662-08fc-4192-b035-06a54af5e82f" }, "data": { "id": "checkout\_0b84fee952f2c488364a5c1397a67054", "status": "NEW", "language": "en", "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1632653516, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_0b84fee952f2c488364a5c1397a67054", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "SG", "currency": "SGD", "amount": 100, "payment": { "id": null, "amount": 100, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0912-2021", "customer\_token": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": 1.301492, "merchant\_requested\_currency": "USD", "merchant\_requested\_amount": 76.83, "fixed\_side": "buy", "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1631443916, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page with dynamic currency conversion * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 123.45, "complete\_payment\_url": "http://example.com/complete", "country": "SG", "currency": "SGD", "requested\_currency": "USD", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "0912-2021", "language": "en", "metadata": { "merchant\_defined": true }, "payment\_method\_type\_categories": \[\ "card"\ \], "custom\_elements": { "dynamic\_currency\_conversion": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "5c49bd5b-2183-4478-aeb3-3ed35aad434d" }, "data": { "id": "checkout\_05d0cd0426f3aeee744ad389606237ce", "status": "NEW", "language": "en", "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1632653843, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_05d0cd0426f3aeee744ad389606237ce", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "SG", "currency": "SGD", "amount": 123.45, "payment": { "id": null, "amount": 123.45, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0912-2021", "customer\_token": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": 1.301492, "merchant\_requested\_currency": "USD", "merchant\_requested\_amount": 94.85, "fixed\_side": "buy", "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": \[\ "card"\ \], "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": true }, "timestamp": 1631444243, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page using payment method type * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 100, "complete\_payment\_url": "http://example.com/complete", "country": "SG", "currency": "SGD", "customer": "cus\_9761efaa881b6edeab25e9fbfec1ddf5", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "0912-2021", "language": "en", "metadata": { "merchant\_defined": true }, "payment\_method\_type": "sg\_grabpay\_ewallet" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "9925fcbc-1be5-4ebd-a676-c1919ed93ee7" }, "data": { "id": "checkout\_f01e66e29d482641026fc73756364f45", "status": "NEW", "language": "en", "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1632654049, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_f01e66e29d482641026fc73756364f45", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "SG", "currency": "SGD", "amount": 100, "payment": { "id": null, "amount": 100, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0912-2021", "customer\_token": "cus\_9761efaa881b6edeab25e9fbfec1ddf5", "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": "sg\_grabpay\_ewallet", "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "customer": "cus\_9761efaa881b6edeab25e9fbfec1ddf5", "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1631444449, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page with 'payment\_method\_types\_exclude' * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 100, "complete\_payment\_url": "http://example.com/complete", "country": "SG", "currency": "SGD", "customer": "cus\_9761efaa881b6edeab25e9fbfec1ddf5", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "0912-2021", "language": "en", "metadata": { "merchant\_defined": true }, "payment\_method\_types\_exclude": \[\ "sg\_grabpay\_ewallet"\ \] } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "6d64996a-37f5-464f-8e50-d6867e55d702" }, "data": { "id": "checkout\_ec71384b612dce403fc171e35ea40b92", "status": "NEW", "language": "en", "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1632654242, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_ec71384b612dce403fc171e35ea40b92", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "SG", "currency": "SGD", "amount": 100, "payment": { "id": null, "amount": 100, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0912-2021", "customer\_token": "cus\_9761efaa881b6edeab25e9fbfec1ddf5", "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": \[\ "sg\_grabpay\_ewallet"\ \], "customer": "cus\_9761efaa881b6edeab25e9fbfec1ddf5", "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1631444642, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page with escrow * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 110.45, "complete\_payment\_url": "http://example.com/complete", "country": "US", "currency": "USD", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "0912-2021", "payment\_method\_type": "us\_mastercard\_card", "ewallets": \[\ {\ "ewallet": "ewallet\_c1943cfeda5f98247ab117e5d2648861"\ }\ \], "escrow": true, "escrow\_release\_days": "5", "metadata": { "merchant\_defined": "true" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "7c5d0335-8bfe-4fe3-818d-8d327b6a84ee" }, "data": { "id": "checkout\_36bee8cd84a2ca9a45ac1ff255816069", "status": "NEW", "language": null, "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1632654594, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_36bee8cd84a2ca9a45ac1ff255816069", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "US", "currency": "USD", "amount": 110.45, "payment": { "id": null, "amount": 110.45, "original\_amount": 0, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0912-2021", "customer\_token": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": "true" }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallets": \[\ {\ "ewallet": "ewallet\_c1943cfeda5f98247ab117e5d2648861",\ "amount": 110.45,\ "percent": 100\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": "us\_mastercard\_card", "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1631444994, "payment\_expiration": null, "cart\_items": \[\], "escrow": true, "escrow\_release\_days": 5 } } * Create Checkout Page - authorization only * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 123.45, "complete\_payment\_url": "http://example.com/complete", "country": "BR", "currency": "BRL", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "0912-2021", "metadata": { "merchant\_defined": true }, "payment\_method\_type": "br\_credit\_hipercard\_card", "capture": false } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "66aa1041-1057-4476-acdd-f879fc4a889c" }, "data": { "id": "checkout\_f731deff32b343b26de22ae70ef6f0d2", "status": "NEW", "language": null, "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1632654991, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_f731deff32b343b26de22ae70ef6f0d2", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "BR", "currency": "BRL", "amount": 123.45, "payment": { "id": null, "amount": 123.45, "original\_amount": 0, "is\_partial": false, "currency\_code": "BRL", "country\_code": "BR", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0912-2021", "customer\_token": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": "br\_credit\_hipercard\_card", "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1631445391, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page split by amount * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 250, "complete\_payment\_url": "http://example.com/complete", "country": "US", "currency": "USD", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "0209-2023", "metadata": { "merchant\_defined": true }, "payment\_method\_type": "us\_debit\_visa\_card", "ewallets": \[\ {\ "ewallet": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4",\ "amount": 200\ },\ {\ "ewallet": "ewallet\_3cd928611934717f283df049a2c7c17e",\ "amount": 50\ }\ \] } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "57a5f28f-70cd-4a8b-9848-b463dff67480" }, "data": { "id": "checkout\_eb40b93a667e85c6bae5c4f71a270161", "status": "NEW", "language": null, "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Doc Team", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1677161917, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_eb40b93a667e85c6bae5c4f71a270161", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "US", "currency": "USD", "amount": 250, "payment": { "id": null, "amount": 250, "original\_amount": 0, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0209-2023", "customer\_token": null, "payment\_method": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\ {\ "ewallet": "ewallet\_c1943cfeda5f98247ab117e5d2648861",\ "amount": 200,\ "percent": 80\ },\ {\ "ewallet": "ewallet\_755b0fd11fd22b33328fff7d30f3ce30",\ "amount": 50,\ "percent": 20\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": "us\_debit\_visa\_card", "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "account\_funding\_transaction": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1675952317, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page split by percentage * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 20.00, "complete\_payment\_url": "http://example.com/complete", "country": "US", "currency": "USD", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "0912-2021", "metadata": { "merchant\_defined": true }, "payment\_method\_type": "us\_visa\_card", "ewallets": \[\ {\ "ewallet": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4",\ "percentage": 12.05\ },\ {\ "ewallet": "ewallet\_3801e782955b29955445586a2405a5db",\ "percentage": 25\ },\ {\ "ewallet": "ewallet\_3cd928611934717f283df049a2c7c17e",\ "percentage": null\ }\ \] } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "5872a459-e4be-4277-8ea1-70caa6bf8561" }, "data": { "id": "checkout\_7665538188563c9d987a2a7770b8c6db", "status": "NEW", "language": null, "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1632655648, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_7665538188563c9d987a2a7770b8c6db", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "US", "currency": "USD", "amount": 20, "payment": { "id": null, "amount": 20, "original\_amount": 0, "is\_partial": false, "currency\_code": "USD", "country\_code": "US", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0912-2021", "customer\_token": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\ {\ "ewallet": "ewallet\_c67c44ec60d5c2e62480aa7c76b3f8b4",\ "amount": 2.41,\ "percent": 12.05\ },\ {\ "ewallet": "ewallet\_3801e782955b29955445586a2405a5db",\ "amount": 5,\ "percent": 25\ },\ {\ "ewallet": "ewallet\_3cd928611934717f283df049a2c7c17e",\ "amount": 12.59,\ "percent": 62.95\ }\ \], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": "us\_visa\_card", "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1631446048, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page with FX - fixed side sell * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 100, "complete\_payment\_url": "http://example.com/complete", "country": "SG", "currency": "SGD", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "0912-2021", "language": "en", "requested\_currency": "USD", "fixed\_side": "sell", "metadata": { "merchant\_defined": true } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "79608b10-b34c-479b-bb19-fe142fc42135" }, "data": { "id": "checkout\_402f993b81c304fda4a0e36567705eed", "status": "NEW", "language": "en", "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1632653693, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_402f993b81c304fda4a0e36567705eed", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "SG", "currency": "SGD", "amount": 100, "payment": { "id": null, "amount": 100, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0912-2021", "customer\_token": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": 0.722939, "merchant\_requested\_currency": "USD", "merchant\_requested\_amount": 100, "fixed\_side": "sell", "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1631444093, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page with page expiration * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 100, "complete\_payment\_url": "http://example.com/complete", "country": "SG", "currency": "SGD", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "0912-2021", "metadata": { "merchant\_defined": true }, "page\_expiration": 1632027189 } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "8556381b-b946-4d1f-bfd5-169fbe5bb9c7" }, "data": { "id": "checkout\_39941080d6ccb872616b76a034bcf1a1", "status": "NEW", "language": null, "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1632027189, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_39941080d6ccb872616b76a034bcf1a1", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "SG", "currency": "SGD", "amount": 100, "payment": { "id": null, "amount": 100, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0912-2021", "customer\_token": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1631446556, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page with payment expiration * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 100, "complete\_payment\_url": "http://example.com/complete", "country": "SG", "currency": "SGD", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "0912-2021", "metadata": { "merchant\_defined": true }, "payment\_expiration": 604800 } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "d3eb0d10-d3ee-424e-8bd1-f568b00238bc" }, "data": { "id": "checkout\_1f659e4cce61e1d8c881e6bb5a8e1ffc", "status": "NEW", "language": null, "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1632656479, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_1f659e4cce61e1d8c881e6bb5a8e1ffc", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "SG", "currency": "SGD", "amount": 100, "payment": { "id": null, "amount": 100, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "0912-2021", "customer\_token": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1631446879, "payment\_expiration": 604800, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page - Card with requested currency * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 100.00, "complete\_payment\_url": "http://example.com/complete", "country": "SG", "currency": "SGD", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "1003-2021", "requested\_currency": "USD", "metadata": { "merchant\_defined": true }, "payment\_method\_type\_categories": \[\ "card"\ \] } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "6e8b51b2-411c-4a24-bc5a-e99c9ffcc274" }, "data": { "id": "checkout\_407c08def4a3e234bb5496c96a60ba6d", "status": "NEW", "language": null, "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1634476018, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_407c08def4a3e234bb5496c96a60ba6d", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "SG", "currency": "SGD", "amount": 100, "payment": { "id": null, "amount": 100, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "1003-2021", "customer\_token": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": 1.317332, "merchant\_requested\_currency": "USD", "merchant\_requested\_amount": 75.91, "fixed\_side": "buy", "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": \[\ "card"\ \], "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1633266418, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page - Card with requested currency and fees * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 100, "complete\_payment\_url": "http://example.com/complete", "country": "SG", "currency": "SGD", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "1007-2021", "requested\_currency": "USD", "metadata": { "merchant\_defined": true }, "payment\_method\_type\_categories": \[\ "card"\ \], "payment\_fees": { "transaction\_fee": { "calc\_type": "gross", "value": 10, "fee\_type": "percentage" }, "fx\_fee": { "calc\_type": "gross", "value": 2 } } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "8c23f60a-969e-414b-a995-5a2e5a574426" }, "data": { "id": "checkout\_5c4313c6b51fd9e7e77dc1a8555329d1", "status": "NEW", "language": null, "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1634811166, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_5c4313c6b51fd9e7e77dc1a8555329d1", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "SG", "currency": "SGD", "amount": 100, "payment": { "id": null, "amount": 100, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "1007-2021", "customer\_token": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": 1.3182, "merchant\_requested\_currency": "USD", "merchant\_requested\_amount": 84.96, "fixed\_side": "buy", "payment\_fees": { "fx\_fee": { "value": 2, "calc\_type": "gross" }, "net\_fees": null, "gross\_fees": null, "transaction\_fee": { "value": 10, "fee\_type": "percentage", "calc\_type": "gross" } }, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": \[\ "card"\ \], "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1633601566, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page with multiple payment method categories * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 123.45, "complete\_payment\_url": "http://example.com/complete", "country": "SG", "currency": "SGD", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "1007-2021", "metadata": { "merchant\_defined": true }, "payment\_method\_type\_categories": \[\ "cash",\ "card",\ "ewallet"\ \] } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "4ade4b47-79ef-4190-bba6-ec0b790ecaeb" }, "data": { "id": "checkout\_117e89c8b0cfba65e70e34396156cb01", "status": "NEW", "language": null, "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Rapyd", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1634813300, "redirect\_url": "https://sandboxcheckout.rapyd.net?token=checkout\_117e89c8b0cfba65e70e34396156cb01", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "SG", "currency": "SGD", "amount": 123.45, "payment": { "id": null, "amount": 123.45, "original\_amount": 0, "is\_partial": false, "currency\_code": "SGD", "country\_code": "SG", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "1007-2021", "customer\_token": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": \[\ "cash",\ "card",\ "ewallet"\ \], "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1633603700, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page with merchant fields * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "amount": 10, "currency": "COP", "country": "CO", "merchant\_fields": { "co\_cash\_cash": { "required\_fields": { "tax": 7, "documentnumber": "654987575" }, "payment\_method\_options": {} } } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "38d78b3f-fa37-46a2-84e8-e195c57fcb28" }, "data": { "id": "checkout\_57b1366b899d01f02964874512ba555a", "status": "NEW", "language": null, "merchant\_color": "e8dcff", "merchant\_logo": "https://iconslib.rapyd.net/merchant-logos/ohpc\_bc12.png", "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": { "url": "https://rapyd.net", "email": "johndoe@rapyd.net", "phone\_number": "555555555" }, "merchant\_alias": "Rapyd", "merchant\_terms": "https://rapyd.net", "merchant\_privacy\_policy": "https://rapyd.net", "page\_expiration": 1668606927, "redirect\_url": "https://checkout.rapyd.net?token=checkout\_57b1366b899d01f02964874512ba555a", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "CO", "currency": "COP", "amount": 10, "payment": { "id": null, "amount": 10, "original\_amount": 0, "is\_partial": false, "currency\_code": "COP", "country\_code": "CO", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": null, "customer\_token": null, "payment\_method": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": null, "error\_payment\_url": null, "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": null, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "account\_funding\_transaction": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1667397328, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page - Account Funding Transaction - 'person' wallet * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "country": "AT", "currency": "EUR", "amount": "100", "account\_funding\_transaction": { "ewallet": "ewallet\_d2ab10025f4da04a5442ea264fd98f53", "payment\_method\_types": \["at\_mastercard\_card"\] } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "cdee23c4-6a06-45b9-a1e5-28e30a78ae89" }, "data": { "id": "checkout\_b8f18ef475ad1934d896770b0fb85c65", "status": "NEW", "language": null, "merchant\_color": "e8dcff", "merchant\_logo": "https://iconslib.rapyd.net/merchant-logos/ohpc\_8df12e51102d26bdc7e2321201120.jpg", "merchant\_website": "https://rapyd.net", "merchant\_customer\_support": { "url": "https://www.rapyd.com", "email": "johndoe@rapyd.net", "phone\_number": "55555555555" }, "merchant\_alias": "rapyd", "merchant\_terms": "https://www.termsfeed.com/terms-conditions-generator/", "merchant\_privacy\_policy": "https://www.privacypolicies.com/blog/privacy-policy-template/", "page\_expiration": 1668597423, "redirect\_url": "https://sboxcheckout.rapyd.net?token=checkout\_b8f18ef475ad1934d896770b0fb85c65", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://rapyd.net", "complete\_checkout\_url": "https://rapyd.net", "country": "AT", "currency": "EUR", "amount": 100, "payment": { "id": null, "amount": 100, "original\_amount": 0, "is\_partial": false, "currency\_code": "EUR", "country\_code": "AT", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": null, "customer\_token": null, "payment\_method": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": null, "error\_payment\_url": null, "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": null, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "account\_funding\_transaction": { "ewallet": "ewallet\_d2ab10025f4da04a5442ea264fd98f53", "payment\_method\_types": \["at\_mastercard\_card"\] }, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1667387823, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page - Required Customer Fields * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d ' { "country": "gb", "currency": "gbp", "amount": "10", "custom\_elements": { "required\_customer\_fields": \[\ "name",\ "email",\ "phone\_number",\ "address"\ \] } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "2fe1887a-8db5-4c26-9674-b9c85a278dcb" }, "data": { "id": "checkout\_72a2ba224fa5d0a2ea9469d1c742d7c4", "status": "NEW", "language": null, "merchant\_color": "324cff", "merchant\_logo": "https://iconslib.rapyd.net/merchant-logos/ohpc\_9251592457fc1d7c11a7d02882a6e085/Pikachu.jpg", "merchant\_website": "https://www.rapyd.net", "merchant\_customer\_support": { "url": "https://www.rapyd.net", "email": "morank@rapyd.net", "phone\_number": "523-444444444" }, "merchant\_alias": "rapyd", "merchant\_terms": "https://www.terms.com", "merchant\_privacy\_policy": "https://www.privacy.com", "page\_expiration": 1719744493, "redirect\_url": "https://sandboxcheckout.rapyd.net/?token=checkout\_72a2ba224fa5d0a2ea9469d1c742d7c4", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://www.rapyd.net", "complete\_checkout\_url": "https://www.rapyd.net", "country": "GB", "currency": "GBP", "amount": 10, "payment": { "id": null, "amount": 10, "original\_amount": 0, "is\_partial": false, "currency\_code": "GBP", "country\_code": "GB", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": null, "customer\_token": null, "payment\_method": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": null, "error\_payment\_url": null, "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": null, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": null, "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "account\_funding\_transaction": null, "customer": null, "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "required\_customer\_fields": \[\ "name",\ "email",\ "phone\_number",\ "address"\ \], "dynamic\_currency\_conversion": false }, "timestamp": 1718534893, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page - Payment Method Required Fields * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d ' { "country":"IS", "amount": 10, "payment\_method": { "type": "is\_visa\_card", "fields": { "number": "4111111111111111", "expiration\_month": "12", "expiration\_year": "24", "cvv": "566", "name": "John Doe" } }, "currency": "ISK", "payment\_method\_options": { "3d\_required": true }, "payment\_method\_required\_fields": { "is\_visa\_card": { "payment\_method\_options": \[\ "cvv"\ \] } }, "ewallet": "ewallet\_4a2ba015651f6f5e877536413a36dd07", "capture": false, "expiration": 1739859548, "error\_payment\_url": "https://support.rapyd.net/hc/en-us", "complete\_payment\_url": "https://www.rapyd.net", "description": "payment - small amount" } * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "b94114d8-e5cf-4fb3-be2d-5a1279991c64" }, "data": { "id": "checkout\_9faa98751f4c8bf9150505d7193e0f13", "status": "NEW", "language": null, "merchant\_color": "323fff", "merchant\_logo": null, "merchant\_website": "https://example1234.net", "merchant\_customer\_support": { "url": "https://example1234.net", "email": "support@example1234.net", "phone\_number": "121255551213" }, "merchant\_alias": "Doc Team", "merchant\_terms": "https://example1234.net/terms\_and\_conditions", "merchant\_privacy\_policy": "https://example1234.net/privacy\_policy", "page\_expiration": 1727598176, "redirect\_url": "https://sandboxcheckout.rapyd.net/?token=checkout\_9faa98751f4c8bf9150505d7193e0f13", "merchant\_main\_button": "place\_your\_order", "recurrence\_type": null, "cancel\_checkout\_url": "https://example1234.net", "complete\_checkout\_url": "https://example1234.net", "country": "IS", "currency": "ISK", "amount": 10, "payment": { "id": null, "amount": 10, "original\_amount": 0, "is\_partial": false, "currency\_code": "ISK", "country\_code": "IS", "status": null, "description": "payment - small amount", "merchant\_reference\_id": null, "customer\_token": null, "payment\_method": { "type": "is\_visa\_card", "fields": { "cvv": "566", "name": "John Doe", "number": "4111111111111111", "expiration\_year": "24", "expiration\_month": "12" } }, "payment\_method\_data": {}, "expiration": 1739859548, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "https://www.rapyd.net", "error\_payment\_url": "https://support.rapyd.net/hc/en-us", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": null, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallets": \[\ {\ "ewallet": "ewallet\_4a2ba015651f6f5e877536413a36dd07",\ "amount": 10,\ "percent": 100\ }\ \], "payment\_method\_options": { "3d\_required": true }, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": null, "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "account\_funding\_transaction": null, "customer": null, "custom\_elements": { "hide\_save\_card": false, "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1726388576, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null, "require\_card\_cvv": false } } * Create Checkout Page - Recurring payments * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d ' { "amount": 10, "currency": "gbp", "country": "gb", "recurrence\_type":"recurring", "customer":"cus\_24f508ed8d53904eac99f7d75be59ba7", "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "be816f7f-a2e8-4019-8a4a-bb0abed6db49" }, "data": { "id": "checkout\_64c3b49e326e1c23d57c81f35a25e532", "status": "NEW", "language": null, "merchant\_color": "324cff", "merchant\_logo": "https://sbiconslib.rapyd.net/merchant-logos/ohpc\_9251592457fc1d7c11a7d02882a6e085/Pikachu.jpg", "merchant\_website": "https://www.rapyd.net", "merchant\_customer\_support": { "url": "https://www.rapyd.net", "email": "john.doe@rapyd.net", "phone\_number": "523-444444444" }, "merchant\_alias": "AUTOMATION\_HCP", "merchant\_terms": "https://www.terms123.com", "merchant\_privacy\_policy": "https://www.privacy235.com", "page\_expiration": 1724139311, "redirect\_url": "https://sbcheckout.rapyd.net/?token=checkout\_64c3b49e326e1c23d57c81f35a25e532", "merchant\_main\_button": "place\_your\_order", "recurrence\_type": "recurring", "cancel\_checkout\_url": "https://www.rapyd.net", "complete\_checkout\_url": "https://www.rapyd.net", "country": "GB", "currency": "GBP", "amount": 10, "payment": { "id": null, "amount": 10, "original\_amount": 0, "is\_partial": false, "currency\_code": "GBP", "country\_code": "GB", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": null, "customer\_token": "cus\_24f508ed8d53904eac99f7d75be59ba7", "payment\_method": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "https://complete.rapyd.net", "error\_payment\_url": "https://error.rapyd.net", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": null, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": null, "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "account\_funding\_transaction": null, "customer": "cus\_24f508ed8d53904eac99f7d75be59ba7", "custom\_elements": { "hide\_save\_card": true, "save\_card\_default": true, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1722929711, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } * Create Checkout Page - CVV of card required on subsequent payments * curl -X post https://sandboxapi.rapyd.net/v1/checkout -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d ' { "country": "gb", "currency": "gbp", "amount": "10", "customer": "cus\_b08b670dc7211c916ae1d67c51549483", "require\_card\_cvv": true } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "cb745c95-8798-4f88-8659-56273d5d7ad7" }, "data": { "id": "checkout\_13427f563a2dd69da06c6b503d137d49", "status": "NEW", "language": null, "merchant\_color": "0c90e4", "merchant\_logo": "https://sbiconslib.rapyd.net/merchant-logos/ohpc\_074fc5cbcbdf5e5b62889ba08db41784/Instagram post - 5 (2).jpg", "merchant\_website": "https://www.example4567.com", "merchant\_customer\_support": { "url": "https://www.example4567.com/support", "email": "example123456@rapyd.net", "phone\_number": "442125551234" }, "merchant\_alias": "12345678", "merchant\_terms": "https://www.example4567.com/terms", "merchant\_privacy\_policy": "https://www.example4567.com/policy", "page\_expiration": 1724587506, "redirect\_url": "https://sbcheckout.rapyd.net/?token=checkout\_13427f563a2dd69da06c6b503d137d49", "merchant\_main\_button": "buy", "recurrence\_type": null, "cancel\_checkout\_url": "https://www.example4567.com/cancel", "complete\_checkout\_url": "https://www.example4567.com/complete", "country": "GB", "currency": "GBP", "amount": 10, "payment": { "id": null, "amount": 10, "original\_amount": 0, "is\_partial": false, "currency\_code": "GBP", "country\_code": "GB", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": null, "customer\_token": "cus\_b08b670dc7211c916ae1d67c51549483", "payment\_method": null, "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": null, "error\_payment\_url": null, "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": null, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": null, "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": null, "account\_funding\_transaction": null, "customer": "cus\_b08b670dc7211c916ae1d67c51549483", "custom\_elements": { "hide\_save\_card": false, "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1723377906, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null, "require\_card\_cvv": true } } ###### Related Information * [Hosted Checkout Page Integration](hosted-checkout-page-integration.html "Hosted Checkout Page Integration") In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](checkout-page.html) * [Next](create-checkout-page.html#idp295515) --- # Viewing Details of a Wallet [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Wallets](wallets.html) * Viewing Details of a Wallet * [Prev](previewing-wallet-details.html#idp259183) * [Next](viewing-details-of-a-wallet.html#idp259226) #### Viewing Details of a Wallet You can view details of a specific wallet, including transactions and contacts. To preview selected details of a wallet and its cards, see [Previewing Wallet Details](previewing-wallet-details.html "Previewing Wallet Details") . [##### How to View Wallet Details](#idp259226_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") . 2. Do one of the following: * Navigate to **Wallets** > **Wallets**, then click the **See more details** icon in the row of the wallet you want to view. * Navigate to **Wallets** > **Transactions**, then click the **View wallet** icon in any transaction row of the wallet you want to view. The **Wallet Details** page appears for the wallet you selected. ![64808b4e496a6.png](image/16763ca4d63c2c.png) [##### Description of Fields](#idp259250_body) The following table describes the fields of the **Wallet Details** page: | Field | Description | | --- | --- | | ID | ID of the wallet. String starting with **ewallet\_**. | | Status | Status of the wallet. | | Wallet details | The details associated with the wallet. | | Created At | The date and time that the wallet was created. | | Type | The wallet type. One of the following:

* **client**

* **company**

* **personal** | | Reference ID | Merchant-defined ID for the wallet. | | Phone Number | The phone number of the primary wallet contact. | | Verification Status | The identity verification status. | | Email | The business email address of the primary wallet contact. | | Balance | The current balance of each account in the wallet. Each currency account is listed separately. | | Contacts | The contact associated with the wallet. | | Full Name | The first and last name of the primary wallet contact. | | Cards | The cards associated with the wallet. | | Virtual Accounts | The virtual accounts associated with the wallet. | | Contact Documents | The uploaded documents associated with a wallet contact. | In this section: Search results -------------- No results found * [Prev](previewing-wallet-details.html#idp259183) * [Next](viewing-details-of-a-wallet.html#idp259226) --- # Customizing Your Hosted Page [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Settings](settings.html) * Customizing Your Hosted Page * [Prev](activating-google-pay.html#idp251391) * [Next](customizing-your-hosted-page.html#idp251420) #### Customizing Your Hosted Page Set the look and feel of your page to match your brand. You can customize your hosted page, and set the look and feel that will apply to all applicable Rapyd platform Hosted pages. [##### How to Customize Your Hosted Page](#idp251420_body) 1. Sign into Client Portal and navigate to **Settings** > **Branding**. ![64808935a4846.png](image/16763ca421f04e.png) ### Select Your Hosted Page to View The Preview bar, located above the preview window, will display a preview of your Hosted Checkout page branding. You can toggle between the Hosted Checkout Page, Hosted Subscription Checkout Page, Save Card Details Page, and Beneficiary Account Details Page. Branding settings affect all Hosted pages including Rapyd Collect, Disburse, and Issuing. 2. On the **Brand elements** pane on the left side of the page, tap the **Upload logo** icon and upload an image file (png, jpg, jpeg, gif) containing your company logo. 3. Tap the **Brand color** field to select the color of the buttons on the display. ![6480893866d87.png](image/16763ca4229389.png) 4. In the **Fallback URL** field, enter the URL of the page that appears when the process is completed or canceled when `complete_checkout_url` or `cancel_checkout_url` is not specified. ![6480893b5b1cb.png](image/16763ca4232086.png) ### Complete and Cancel URLs Other Hosted pages may have different fields such as `complete_url` and `cancel_url` * Beneficiary Tokenization Page * Rapyd Verify Hosted Page * Hosted IDV Page * Hosted Page Card Token Object 5. Remove any Payment Methods you will not accept (Hosted Checkout only). * Bank - Includes Bank Redirect and Bank Transfer * Card * Cash * eWallet ![6480893d4f0f8.png](image/16763ca423b026.png) 6. Choose your button text from the drop down (Hosted Checkout only). ![6480893f777ab.png](image/16763ca4243962.png) 7. **(Optional) Customer Support Details** - You can add your customer support contact information to be displayed on your hosted pages. ![648089417198f.png](image/16763ca424c6a4.png) 8. Tap the **Save changes** button at the upper right corner of the screen. ![customize-hosted-page-flow-7.png](image/16763ca4257653.png) [##### Preview Your Hosted Page](#idp251496_body) 1. On the Branding page, switch between the mobile icon or desktop icon to view the preview of your hosted page. ![64808943a2ec8.png](image/16763ca4260e68.png) In this section: Search results -------------- No results found * [Prev](activating-google-pay.html#idp251391) * [Next](customizing-your-hosted-page.html#idp251420) --- # Plugins [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * Plugins * [Prev](api-changelog.html#UUID-18713759-0ea3-e6d7-3f9b-968741c0ec0a_section-idm457950036567203395409843031) * [Next](plugins.html#idp420324) Plugins ------- Instantly connect hundreds of local payment methods to your shopping cart. Accept local payments on the world’s leading ecommerce platforms. Rapyd Payments Plugins en/rapyd-payments-app-for-woocommerce.html WooCommerce Learn how to accept customer-preferred payment methods like eWallets, cash, and bank transfers in over 50 countries, enhancing conversion rates and customer loyalty. en/rapyd-payments-plugin-for-wix.html Wix Rapyd's Wix plugin enhances global transactions, providing diverse payment methods and enabling increased customer conversions through a user-friendly setup in the Rapyd Client Portal. en/rapyd-payments-plugin-for-shopify.html Shopify The Rapyd plugin for Shopify allows online stores to accept a variety of payment methods, including eWallets, cash, and bank transfers, thereby increasing conversions and customer loyalty. Additional Plugins | | | | --- | --- | | [Magento](rapyd-payments-plugin-for-magento.html "Rapyd Payments Plugin for Magento") | Connect your Magento ecommerce site to card acceptance and hundreds of local payment methods across the globe. | | [Ecwid](rapyd-payments-app-for-ecwid.html "Rapyd Payments App for Ecwid") | Start accepting payments from your Ecwid store. | | [OpenCart](rapyd-payments-plugin-for-opencart.html "Rapyd Payments Plugin for OpenCart") | Accept cross-border payments from your OpenCart store. Download it now from the [OpenCart Extensions Marketplace](https://www.opencart.com/index.php?route=marketplace/extension&filter_search=rapyd)
 or your OpenCart control panel. | | [PrestaShop](rapyd-payments-plugin-for-prestashop.html "Rapyd Payments Plugin for PrestaShop") | Accept cross-border payments from your PrestaShop store. | In this section: Search results -------------- No results found * [Prev](api-changelog.html#UUID-18713759-0ea3-e6d7-3f9b-968741c0ec0a_section-idm457950036567203395409843031) * [Next](plugins.html#idp420324) --- # Previewing Wallet Details [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Wallets](wallets.html) * Previewing Wallet Details * [Prev](listing-wallets.html#idp259022) * [Next](previewing-wallet-details.html#idp259060) #### Previewing Wallet Details You can preview selected details of a specific wallet and its cards. To view details of a wallet, including transactions and contacts, see [Viewing Details of a Wallet](viewing-details-of-a-wallet.html "Viewing Details of a Wallet") . [##### How to Preview Wallet Details](#idp259060_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and click **Wallets** > **Wallets**. The **Wallets** page appears. ![64808b430bf91.png](image/16763ca4d1e8eb.png) 2. Tap the row of the **Wallet ID** for the wallet you want. ![64808b4598044.png](image/16763ca4d27cbb.png) The **Wallet** tab of the **Wallet details** panel appears. ![64808b47e8923.png](image/16763ca4d32aec.png) [##### Wallet Tab](#idp259085_body) The following table describes the fields of the **Wallet** tab: | Field | Description | | --- | --- | | Wallet Name | The name of the wallet. | | Wallet ID | The ID for the wallet starting with **ewallet\_**. | | Wallet Status | The status of the wallet: **active** or **disabled**. | | Created At | The date and time the wallet was created. | | Wallet Balances | The balances for the wallet, listed by currency. | | Wallet Type | The wallet type: **personal** or **company**. | | Verification Status | The status of wallet verification: **new**, **submitted**, **pending review**, **verified**, or **declined**. | | Reference ID | The merchant-defined reference ID of the wallet. | | Contact Name | Name of the wallet contact. | | Email | The email of the wallet contact. | | Phone Number | The phone number of the wallet contact. | Tap on the **View wallet** link to view all the wallet details. See also [Viewing Details of a Wallet](viewing-details-of-a-wallet.html "Viewing Details of a Wallet") . ![64808b49e5ead.png](image/16763ca4d3cb94.png) The Wallet details panel displays: * Tap the **Transfer Funds** button to transfer funds to another wallet. * Tap the **Deactivate** button to deactivate the wallet. See also [Deactivating a Wallet](deactivating-a-wallet.html "Deactivating a Wallet") . * Tap the **Add Contact** button to add a contact to a wallet. * Tap the **Create payment link** button to create a payment link. [##### Issuing Tab](#idp259183_body) 1. Tap **Issuing** to view the cards and virtual accounts associated with your wallet. 2. In the **Physical cards** section, you can view: the cardholder name, card status, last 4 digits, and the expiration date. 3. You can activate or block the card by clicking on the **Active** toggle. 4. Click the three dots in the right side of the **Physical cards** section to reset the card PIN or view the card program. ![preview-wallet-details-flow-5.png](image/16763ca4d4abf4.png) 5. Click the drop-down to view additional details about a virtual account. ![preview-wallet-details-flow-6.png](image/16763ca4d58990.png) 6. Use the search bar to search for a virtual account using the following fields: * Account Name * IBAN * Account Number 7. Click **Edit requested currency** to update the currency. Click the three dots next to the button to view the transactions for the virtual account, or copy the account information. 8. Click the **Create virtual account** button at the bottom of the panel to create a virtual account for the wallet. In this section: Search results -------------- No results found * [Prev](listing-wallets.html#idp259022) * [Next](previewing-wallet-details.html#idp259060) --- # List Subscriptions [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription](subscription-364807.html) * List Subscriptions * [Prev](update-subscription.html) * [Next](retrieve-subscription.html) ###### List Subscriptions Retrieve a list of subscriptions. You can filter the list with query parameters. [###### Parameters](#idp303745_body) [###### Request Query Parameters](#idp303747_body) * * billing * Method of billing. One of the following: * **pay\_automatically** * **send\_invoice** * * customer * ID of the customer. String starting with **cus\_**. * * ending\_before * The ID of a record in the list. The list ends with the last record that was created before the record with this ID. Use this filter to get the previous page of results. * * limit * The maximum number of subscriptions to return. Range: 1-100. 10 * * product * ID of a `product` object. The product must have `type` set to **service**. String starting with **product\_**. Filter for one product at a time. * * starting\_after * The ID of a record in the list. The list begins with the record that was created next after the record with this ID. Use this filter to get the next page of results. Relevant when `ending_before` is not used. * * status * Status of the subscription. One of the following: * **active** * **canceled** * **trialing** [###### Request Header Parameters](#idp303816_body) [###### Response Parameters](#idp303866_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string customer = "cus\_494eae8b99f697107d7384c2c6862166"; int limit = 1; string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payments/subscriptions?customer={customer}&limit={limit}"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const result = await makeRequest( 'GET', '/v1/payments/subscriptions?customer=cus\_f3923ec56a56578b6a18df24d4f32d54&limit=1' ); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $object = make\_request('get', '/v1/payments/subscriptions?customer=cus\_494eae8b99f697107d7384c2c6862166&limit=1'); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request result = make\_request(method='get', path='/v1/payments/subscriptions?customer=cus\_494eae8b99f697107d7384c2c6862166&limit=1') pprint(result) * /v1/payments/subscriptions * List Subscriptions by Customer * curl -X get https://sandboxapi.rapyd.net/v1/payments/subscriptions?customer=cus\_494eae8b99f697107d7384c2c6862166&limit=1 -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "c03a32f6-5023-4577-b2b3-4442df616d4a" }, "data": \[\ {\ "id": "sub\_db73da2fc2a7a3b8451fed8afdbaf46c",\ "billing": "pay\_automatically",\ "billing\_cycle\_anchor": 1700140716,\ "created\_at": 1700140716,\ "customer\_token": "cus\_b306773fc73d23e5a9b4347984606cf7",\ "days\_until\_due": 30,\ "metadata": {},\ "tax\_percent": 0,\ "cancel\_at\_period\_end": false,\ "canceled\_at": null,\ "current\_period\_end": 1702732716,\ "current\_period\_start": 1700140716,\ "discount": null,\ "ended\_at": null,\ "subscription\_items": {\ "data": \[\ {\ "id": "subi\_e3cec118feec75e0f270d888a053a410",\ "created": 1700140716,\ "metadata": null,\ "quantity": 5,\ "plan": {\ "id": "plan\_4feb4cf48e807cd142d7759a58a55d2f",\ "aggregate\_usage": "sum",\ "amount": 9.99,\ "billing\_scheme": "per\_unit",\ "created\_at": 1700140529,\ "currency": "USD",\ "interval": "month",\ "interval\_count": 1,\ "metadata": {},\ "product": {\ "id": "product\_4ba001c7655c4a0ee4f471dbaccaa305",\ "active": true,\ "attributes": \[\ "location",\ "size"\ \],\ "created\_at": 1673932995,\ "description": "Unlimited music streaming",\ "images": \[\ "64bit-encoded-image-1",\ "64bit-encoded-image-2"\ \],\ "metadata": {},\ "name": "Unlimited Music",\ "package\_dimensions": {\ "height": 0,\ "length": 0,\ "weight": 0,\ "width": 0\ },\ "shippable": false,\ "skus": \[\],\ "statement\_descriptor": "Music streaming",\ "type": "services",\ "unit\_label": "month",\ "updated\_at": 1673932995\ },\ "nickname": "Unlimited Plan",\ "tiers": \[\],\ "tiers\_mode": "",\ "transform\_usage": {\ "divide\_by": 1,\ "round": "up"\ },\ "trial\_period\_days": 7,\ "usage\_type": "licensed",\ "active": true\ }\ },\ {\ "id": "subi\_f0d375617a093d30307adec9ea246b44",\ "created": 1700140716,\ "metadata": null,\ "quantity": 3,\ "plan": {\ "id": "plan\_26aabd1d48bcfec1ff05dc2bed772aa3",\ "aggregate\_usage": "sum",\ "amount": 10.99,\ "billing\_scheme": "per\_unit",\ "created\_at": 1700140584,\ "currency": "USD",\ "interval": "month",\ "interval\_count": 1,\ "metadata": {},\ "product": {\ "id": "product\_4ba001c7655c4a0ee4f471dbaccaa305",\ "active": true,\ "attributes": \[\ "location",\ "size"\ \],\ "created\_at": 1673932995,\ "description": "Unlimited music streaming",\ "images": \[\ "64bit-encoded-image-1",\ "64bit-encoded-image-2"\ \],\ "metadata": {},\ "name": "Unlimited Music",\ "package\_dimensions": {\ "height": 0,\ "length": 0,\ "weight": 0,\ "width": 0\ },\ "shippable": false,\ "skus": \[\],\ "statement\_descriptor": "Music streaming",\ "type": "services",\ "unit\_label": "month",\ "updated\_at": 1673932995\ },\ "nickname": "Unlimited Plan plus",\ "tiers": \[\],\ "tiers\_mode": "",\ "transform\_usage": {\ "divide\_by": 1,\ "round": "up"\ },\ "trial\_period\_days": 7,\ "usage\_type": "licensed",\ "active": true\ }\ }\ \],\ "has\_more": false,\ "total\_count": 2,\ "url": "/v1/subscription\_items?subscription=sub\_db73da2fc2a7a3b8451fed8afdbaf46c"\ },\ "status": "unpaid",\ "trial\_end": null,\ "trial\_start": null,\ "payment\_method": "card\_3c000ae5db06762a2c8a00ca514fa336",\ "payment\_fields": null,\ "payout\_fields": null,\ "type": "payment",\ "simultaneous\_invoice": false\ }\ \] } * List Subscriptions by Product * curl -X get https://sandboxapi.rapyd.net/v1/payments/subscriptions?product=product\_4ba001c7655c4a0ee4f471dbaccaa305&limit=1 -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "90944be7-447f-4875-ac63-f1a9f970b613" }, "data": \[\ {\ "id": "sub\_db73da2fc2a7a3b8451fed8afdbaf46c",\ "billing": "pay\_automatically",\ "billing\_cycle\_anchor": 1700140716,\ "created\_at": 1700140716,\ "customer\_token": "cus\_b306773fc73d23e5a9b4347984606cf7",\ "days\_until\_due": 30,\ "metadata": {},\ "tax\_percent": 0,\ "cancel\_at\_period\_end": false,\ "canceled\_at": null,\ "current\_period\_end": 1702732716,\ "current\_period\_start": 1700140716,\ "discount": null,\ "ended\_at": null,\ "subscription\_items": {\ "data": \[\ {\ "id": "subi\_e3cec118feec75e0f270d888a053a410",\ "created": 1700140716,\ "metadata": null,\ "quantity": 5,\ "plan": {\ "id": "plan\_4feb4cf48e807cd142d7759a58a55d2f",\ "aggregate\_usage": "sum",\ "amount": 9.99,\ "billing\_scheme": "per\_unit",\ "created\_at": 1700140529,\ "currency": "USD",\ "interval": "month",\ "interval\_count": 1,\ "metadata": {},\ "product": {\ "id": "product\_4ba001c7655c4a0ee4f471dbaccaa305",\ "active": true,\ "attributes": \[\ "location",\ "size"\ \],\ "created\_at": 1673932995,\ "description": "Unlimited music streaming",\ "images": \[\ "64bit-encoded-image-1",\ "64bit-encoded-image-2"\ \],\ "metadata": {},\ "name": "Unlimited Music",\ "package\_dimensions": {\ "height": 0,\ "length": 0,\ "weight": 0,\ "width": 0\ },\ "shippable": false,\ "skus": \[\],\ "statement\_descriptor": "Music streaming",\ "type": "services",\ "unit\_label": "month",\ "updated\_at": 1673932995\ },\ "nickname": "Unlimited Plan",\ "tiers": \[\],\ "tiers\_mode": "",\ "transform\_usage": {\ "divide\_by": 1,\ "round": "up"\ },\ "trial\_period\_days": 7,\ "usage\_type": "licensed",\ "active": true\ }\ },\ {\ "id": "subi\_f0d375617a093d30307adec9ea246b44",\ "created": 1700140716,\ "metadata": null,\ "quantity": 3,\ "plan": {\ "id": "plan\_26aabd1d48bcfec1ff05dc2bed772aa3",\ "aggregate\_usage": "sum",\ "amount": 10.99,\ "billing\_scheme": "per\_unit",\ "created\_at": 1700140584,\ "currency": "USD",\ "interval": "month",\ "interval\_count": 1,\ "metadata": {},\ "product": {\ "id": "product\_4ba001c7655c4a0ee4f471dbaccaa305",\ "active": true,\ "attributes": \[\ "location",\ "size"\ \],\ "created\_at": 1673932995,\ "description": "Unlimited music streaming",\ "images": \[\ "64bit-encoded-image-1",\ "64bit-encoded-image-2"\ \],\ "metadata": {},\ "name": "Unlimited Music",\ "package\_dimensions": {\ "height": 0,\ "length": 0,\ "weight": 0,\ "width": 0\ },\ "shippable": false,\ "skus": \[\],\ "statement\_descriptor": "Music streaming",\ "type": "services",\ "unit\_label": "month",\ "updated\_at": 1673932995\ },\ "nickname": "Unlimited Plan plus",\ "tiers": \[\],\ "tiers\_mode": "",\ "transform\_usage": {\ "divide\_by": 1,\ "round": "up"\ },\ "trial\_period\_days": 7,\ "usage\_type": "licensed",\ "active": true\ }\ }\ \],\ "has\_more": false,\ "total\_count": 2,\ "url": "/v1/subscription\_items?subscription=sub\_db73da2fc2a7a3b8451fed8afdbaf46c"\ },\ "status": "unpaid",\ "trial\_end": null,\ "trial\_start": null,\ "payment\_method": "card\_3c000ae5db06762a2c8a00ca514fa336",\ "payment\_fields": null,\ "payout\_fields": null,\ "type": "payment",\ "simultaneous\_invoice": false\ }\ \] } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](update-subscription.html) * [Next](retrieve-subscription.html) --- # Rapyd Payments App for WooCommerce [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Plugins](plugins.html) * [Plugins and Add-Ons](plugins-and-add-ons.html) * Rapyd Payments App for WooCommerce * [Prev](plugins-and-add-ons.html#idp420460) * [Next](rapyd-payments-app-for-woocommerce.html#idp420497) #### Rapyd Payments App for WooCommerce Convert more customers by accepting their preferred payment methods like ewallets, cash, and bank transfers. Offering more payment methods drives increased conversions and customer loyalty. Rapyd offers this plugin for over 50 countries. Download it now at **WordPress.org** or via the **Add New** option under **Plugins** on your WordPress control panel. For detailed information, read the full instructions on this page. ### Rapyd Account Connection Limit You can only connect one store per Rapyd Account. You must be domiciled in one of the following countries in order to accept payments. [##### Supported Countries](#idp420497_body) Andorra, Armenia, Austria, Australia, Belgium, Bosnia and Herzegovina, Brazil, Bulgaria, Canada, Chile, Colombia, Croatia, Cyprus, Czech Republic, Denmark, Dominican Republic, El Salvador, Estonia, Finland, France, Georgia, Germany, Gibraltar, Greece, Greenland, Hong Kong, Hungary, Iceland, India, Indonesia, Ireland, Israel, Italy, Japan, Latvia, Liechtenstein, Lithuania, Luxembourg, Macedonia, Malaysia, Malta, Mexico, Moldova, Monaco, Montenegro, Netherlands, New Zealand, Norway, Peru, Philippines, Poland, Portugal, Romania, San Marino, Singapore, Slovakia, Slovenia, South Africa, South Korea, Spain, Sweden, Switzerland, Taiwan, Thailand, Turkey, UK, Vatican, Vietnam ##### How to Activate WooCommerce [###### Step 1: Get Started with Rapyd Payments](#idp420502_body) [Sign up](https://support.rapyd.net) With a Rapyd Client Portal Account, you can: * Activate and set up your plugin. * Access sandbox mode and test payments. * View supported payment methods. * View payment reports. * Invite team members. * Complete KYB steps to fully activate your account. ### WooCommerce Subscriptions Extension To enable recurring payments, refer to in the [WooCommerce Subscriptions Store Manage Guide](https://woocommerce.com/document/subscriptions/store-manager-guide/) . [###### Step 2: Activate Your WooCommerce Plugin in Rapyd Client Portal](#idp420524_body) 1. Sign in to Client Portal and navigate to **Plugins**. ![648090080ac12.png](image/16763ca5b15184.png) 2. In the **WooCommerce** window, click the **Active** toggle button. ![6480900a06e0f.png](image/16763ca5b1dd92.png) [###### Step 3: Plugin Installation on WooCommerce](#idp420540_body) 1. Sign in to your WordPress site and navigate to **Tools > Plugins**. 2. Select **Plugins > Add New** from the main menu. 3. In the **Search Plugins** textbox enter **Rapyd Payments Plugin**. The **Rapyd Payments Plugin for WooCommerce** appears. 4. Click **Install Now**. The Installing plugin page appears. 5. Click **Activate Plugin**. The **Plugins**  **Rapyd Payments for WooCommerce**  ![6480900b81e23.png](image/16763ca5b277f9.png) [###### Step 4: Rapyd Payments Plugin Configuration](#idp420565_body) From the WooCommerce Settings you can begin to manage specific payment methods and countries as well manage your Secret Keys for testing and production. To manage payment methods 1. Select **WooCommerce > Settings** from the menu. ![6480900d59e17.png](image/16763ca5b30149.png) 2. Click the **Payments** tab. ![6480900f1133d.png](image/16763ca5b38e3c.png) The **Payment methods** page appears. All Rapyd payment methods are automatically enabled. ![64809010ad31c.png](image/16763ca5b40fee.png) 3. Click the **Manage** button of any **Rapyd payments** method. ![6480901293c13.png](image/16763ca5b4a9e4.png) The **Settings** page appears. ![648090147895e.png](image/16763ca5b53d9a.png) 4. In the **Rapyd plugin settings** section, enter your Rapyd **Secret Key** and **Access Key** for the sandbox environment, then select the **Enable test mode** checkbox. See also [Plugins and Add-Ons](plugins-and-add-ons.html "Plugins and Add-Ons") . ![64809016416d8.png](image/16763ca5b5d832.png) 5. Click **Save Changes**. [###### Step 5: Testing the Rapyd Payments Plugin for WooCommerce](#idp420611_body) ### Sandbox Testing The Rapyd Client Portal must be in sandbox mode during the testing phase. **How to Test a Payment** 1. Go to your WooCommerce test site and add an item to the cart. 2. Add the customer details and then move to the payment screen. Select a payment method that is provided by Rapyd and click **Place Order**. ![64809017cb3b1.png](image/16763ca5b66569.png) A checkout page for completing the payment appears. ![648090194cddd.png](image/16763ca5b6fa07.png) After you have finished testing the plugin, you can switch to production mode. ### Listing Payments in Client Portal In circumstances where the paid amount is less than the original amount, use the Client Portal to verify the actual amount that was paid, and not the store's admin portal. [###### Step 6: Configuring WooCommerce Plugin for Production](#idp420635_body) Once you’ve completed testing you need to set Plugin for Production Mode. ### Account Activation To fully activate your account for production mode you’ll need to complete the KYB form for compliance review in the Rapyd Client Portal. **How to Configure Your Plugin** 1. Access the Rapyd Client Portal and set the Client Portal to production mode. 2. On your WooCommerce site, go to the **Settings** page of any Rapyd Payment. 3. Enter your Rapyd **Secret Key** and **Access Key** for the production environment. Note that these keys are different from the sandbox keys. See also [Plugins and Add-Ons](plugins-and-add-ons.html "Plugins and Add-Ons") . ![6480901abdfbd.png](image/16763ca5b78d33.png) 4. Clear the **Enable test mode** checkbox. 5. Click **Save Changes**. [###### Step 7: Set Up a Landing Page URL](#idp420663_body) After the checkout process completes, the customer can be forwarded to a landing page. This may be the main URL of the ecommerce site or any other landing page that you may want to define. To set the landing page URL: 1. Sign in to the Client Portal and navigate to **Settings > Branding**. ![648090a7f0443.png](image/16763ca5b83cc4.png) 2. Click on the link icon and enter the URL of the landing page in the **Fallback URL** field. ![648090aa75383.png](image/16763ca5b8cef6.png) 3. Click **Save**. In this section: Search results -------------- No results found * [Prev](plugins-and-add-ons.html#idp420460) * [Next](rapyd-payments-app-for-woocommerce.html#idp420497) --- # Retrieve Subscription [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription](subscription-364807.html) * Retrieve Subscription * [Prev](list-subscriptions.html) * [Next](cancel-subscription.html) ###### Retrieve Subscription Retrieve the details of a subscription. [###### Parameters](#idp304358_body) [###### Request Path Parameters](#idp304360_body) * * subscription * ID of the subscription. String starting with **sub\_**. [###### Request Header Parameters](#idp304370_body) [###### Response Parameters](#idp304420_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string subscription = "sub\_b3cbb7eba3e4d67e9bf016dd78267b56"; string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/payments/subscriptions/{subscription}"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const result = await makeRequest( 'GET', '/v1/payments/subscriptions/sub\_b3cbb7eba3e4d67e9bf016dd78267b56' ); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $object = make\_request('get', '/v1/payments/subscriptions/sub\_b3cbb7eba3e4d67e9bf016dd78267b56'); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request result = make\_request(method='get', path='/v1/payments/subscriptions/sub\_b3cbb7eba3e4d67e9bf016dd78267b56') pprint(result) * /v1/payments/subscriptions/:subscription * Retrieve Subscription * curl -X get https://sandboxapi.rapyd.net/v1/payments/subscriptions/sub\_db73da2fc2a7a3b8451fed8afdbaf46c -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "0d22931f-c478-4a5b-b564-939afcf10723" }, "data": { "id": "sub\_db73da2fc2a7a3b8451fed8afdbaf46c", "billing": "pay\_automatically", "billing\_cycle\_anchor": 1700140716, "created\_at": 1700140716, "customer\_token": "cus\_b306773fc73d23e5a9b4347984606cf7", "days\_until\_due": 30, "metadata": {}, "tax\_percent": 0, "cancel\_at\_period\_end": false, "canceled\_at": null, "current\_period\_end": 1702732716, "current\_period\_start": 1700140716, "discount": null, "ended\_at": null, "subscription\_items": { "data": \[\ {\ "id": "subi\_e3cec118feec75e0f270d888a053a410",\ "created": 1700140716,\ "metadata": null,\ "quantity": 5,\ "plan": {\ "id": "plan\_4feb4cf48e807cd142d7759a58a55d2f",\ "aggregate\_usage": "sum",\ "amount": 9.99,\ "billing\_scheme": "per\_unit",\ "created\_at": 1700140529,\ "currency": "USD",\ "interval": "month",\ "interval\_count": 1,\ "metadata": {},\ "product": {\ "id": "product\_4ba001c7655c4a0ee4f471dbaccaa305",\ "active": true,\ "attributes": \[\ "location",\ "size"\ \],\ "created\_at": 1673932995,\ "description": "Unlimited music streaming",\ "images": \[\ "64bit-encoded-image-1",\ "64bit-encoded-image-2"\ \],\ "metadata": {},\ "name": "Unlimited Music",\ "package\_dimensions": {\ "height": 0,\ "length": 0,\ "weight": 0,\ "width": 0\ },\ "shippable": false,\ "skus": \[\],\ "statement\_descriptor": "Music streaming",\ "type": "services",\ "unit\_label": "month",\ "updated\_at": 1673932995\ },\ "nickname": "Unlimited Plan",\ "tiers": \[\],\ "tiers\_mode": "",\ "transform\_usage": {\ "divide\_by": 1,\ "round": "up"\ },\ "trial\_period\_days": 7,\ "usage\_type": "licensed",\ "active": true\ }\ },\ {\ "id": "subi\_f0d375617a093d30307adec9ea246b44",\ "created": 1700140716,\ "metadata": null,\ "quantity": 3,\ "plan": {\ "id": "plan\_26aabd1d48bcfec1ff05dc2bed772aa3",\ "aggregate\_usage": "sum",\ "amount": 10.99,\ "billing\_scheme": "per\_unit",\ "created\_at": 1700140584,\ "currency": "USD",\ "interval": "month",\ "interval\_count": 1,\ "metadata": {},\ "product": {\ "id": "product\_4ba001c7655c4a0ee4f471dbaccaa305",\ "active": true,\ "attributes": \[\ "location",\ "size"\ \],\ "created\_at": 1673932995,\ "description": "Unlimited music streaming",\ "images": \[\ "64bit-encoded-image-1",\ "64bit-encoded-image-2"\ \],\ "metadata": {},\ "name": "Unlimited Music",\ "package\_dimensions": {\ "height": 0,\ "length": 0,\ "weight": 0,\ "width": 0\ },\ "shippable": false,\ "skus": \[\],\ "statement\_descriptor": "Music streaming",\ "type": "services",\ "unit\_label": "month",\ "updated\_at": 1673932995\ },\ "nickname": "Unlimited Plan plus",\ "tiers": \[\],\ "tiers\_mode": "",\ "transform\_usage": {\ "divide\_by": 1,\ "round": "up"\ },\ "trial\_period\_days": 7,\ "usage\_type": "licensed",\ "active": true\ }\ }\ \], "has\_more": false, "total\_count": 2, "url": "/v1/subscription\_items?subscription=sub\_db73da2fc2a7a3b8451fed8afdbaf46c" }, "status": "unpaid", "trial\_end": null, "trial\_start": null, "payment\_method": "card\_3c000ae5db06762a2c8a00ca514fa336", "payment\_fields": null, "payout\_fields": null, "type": "payment", "simultaneous\_invoice": false } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](list-subscriptions.html) * [Next](cancel-subscription.html) --- # Merchant Settlement Report [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Reports](reports-367106.html) * Merchant Settlement Report * [Prev](merchant-reconciliation-report.html#idp265919) * [Next](merchant-settlement-report.html#idp265940) #### Merchant Settlement Report The **Merchant Settlement Report** summarizes all settlements performed to the merchant during the period for which the report applies to. The report is generated only when settlement events occur. There are a few different types of Settlement reports: * Merchant Settlement Report - Summarizes all settlements performed to the merchant during the period for which the report applies to. The report is generated only when settlement events occur. * Merchant Settlement Report Beta - The same report as Merchant Settlement Report, but temporarily released when new fields are released (beta) before they are merged into the main Merchant Settlement Report. * Merchant Monthly Settlement Report - Monthly overview of the Merchant Settlement Report as described. You can download the **Merchant Settlement Report**. See [Downloading a Financial Report](downloading-a-financial-report.html "Downloading a Financial Report") . The report is provided in the form of a CSV file. To read it, open it in a spreadsheet. [##### File Version](#idp265940_body) The current file format version is _1.4_ [##### Reporting Frequency](#idp265944_body) Depending on the merchant activity, the report is generated on a daily basis at 2:00 AM GMT. [##### File Structure](#idp265947_body) ###### Header Format Line 1 of the CSV file contains the following information: ### Timestamps Format All timestamps should be in UTC. | Field | Value | | --- | --- | | Report Title | Rapyd Merchant Settlement Report | | Version | Report version number | | Merchant | Alias of the merchant | | From | the string "From" | | Start date | Period start date | | To | the string "To" | | End date | Period end date | ###### Data Format * **Headers** - Described in the following table. * **Collections** - Transactions created by [Create Payment](create-payment.html "Create Payment") or [Create Refund](create-refund.html "Create Refund") . If the merchant has two or more accounts for collections, each account appears on a separate line. * **Disbursements** - Transactions created by [Create Payout](create-payout.html "Create Payout") . ### Transaction Settlement Timeframe Transactions closed within a day (UTC time) will be considered for settlement starting that day (i.e. the system's cutoff time is 12:00 AM UTC). | Field | Value | | --- | --- | | Account ID | Alias of the merchant's account on the Rapyd platform. | | Account Number | The account number of the bank account to which the settlement was remitted to. | | Bank | The name of the merchant's bank where the settlement is managed. Relevant to collections. | | Wallet ID | * **Collections** - The wallet where the funds are collected to and settled from.

* **Disbursements** - The wallet where the fees are collected from. Relevant when fees are collected from a wallet and not invoiced. | | Type | Type of transaction. One of the following:

* **Collection** - Payments and refunds.

* **Disbursement** - Payouts. | | Settlement Date | The date the settlement was processed and remitted by Rapyd. Format: **YYYY-MM-DD** | | Original Settlement Date | The date the funds are designated to be settled according to the settlement cycle. | | Settlement Currency | The currency of the transactions, as settled with the merchant. Three-letter ISO 4217 code. Relevant to collections. | | Reserve Amount in Settlement Currency | The total reserve amount denominated in the settlement currency. | | Reserve Currency | The currency of the reserve funds. | | Reserve Amount in Reserve Currency | The total reserve amount denominated in the reserve currency. | | Settlement Amount | The amount settled with the merchant for transactions that settled on the settlement date. | | Settlement ID | The identifier of the settlement generated by Rapyd. | | Settlement Reference ID | The identifier of the settlement completed by Rapyd on the settlement configuration. | | Settlement Wallet Account Currency | * **Collections** - The currency of the funds collected.

* **Disbursements** - The currency of the funds received by the beneficiary.


Three-letter ISO 4217 code. | | Settlement Amount in Wallet Account Currency | The client wallet currency equivalent of the amount settled with the merchant. | | Prev Negative Settlement | The total amount that the merchant owes to Rapyd from previous days. Relevant when there is a past negative remittance. | | Static Reference ID | The identifier generated from the settlement configuration. | | Initiator | Indicates whether the settlement is requested by Rapyd or the client. The settlement is requested by the client for **settlement on demand** transactions.

Possible values:

* Rapyd

* Client | | Client Reference | The Settlement Reference ID for **settlement on demand** transactions. Other possible values: **null**. | | Wallet Address | The wallet address value as entered by the merchant. | ##### Sample Report **Merchant Settlement Report** Merchant Settlement Report,v1.4,Awesome Merchant LTD,From,2024/04/29,To,2024/04/30,,,,,,,,,,,,, Account ID,Account Number,Bank,Wallet ID,Type,Settlement Date,Settlement Currency,Settlement Amount,Settlement Wallet Account Currency,Settlement Amount in Wallet Account Currency,Prev Negative Settlement,Settlement Reference ID,Static Reference Id,Reserve Currency,Reserve Amount in Reserve Currency,Reserve Amount in Settlement Currency,Initiator,Client Reference,Settlement ID,Original Settlement Date Awesome Merchant LTD,123456789,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,Collections,2024-04-30,USD,62005.645,USD,62005.645,,ds321fds5sdf,,USD,"4,758.96","4,758.96",Rapyd,,SDFG5DFG321DFG6548UKJ3K321HJM3,2024-04-22 Awesome Merchant LTD,123456790,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,Collections,2024-04-30,USD,61972.025,USD,61972.025,,dfg321df3dfg1,,USD,"4,757.66","4,757.66",Rapyd,,DFHF856GHJ231DF32GFH8YUJ321G3FGH1,2024-04-22 Awesome Merchant LTD,123456791,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,reserve\_return,2024-04-30,USD,6040.95,USD,6040.95,,dfg231311323d,,,,,Rapyd,,DFG231SDF685DF64T32H1B321DSF8DH,2024-04-22 Awesome Merchant LTD,123456792,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,reserve\_return,2024-04-30,USD,6041.86,USD,6041.86,,dfg21f3fg13212,,,,,Rapyd,,DFG21FHGJK89YU32HM1CB1SDFG654H,2024-04-22 Awesome Merchant LTD,123456793,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,Collections,2024-04-30,USD,46079.805,USD,46079.805,,dfg213gd1se1,,USD,"3,539.41","3,539.41",Rapyd,,SDFG231GJ8YU3M21BVN8DFG321FGH13,2024-04-30 Awesome Merchant LTD,123456794,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,Collections,2024-04-30,USD,4056.075,USD,4056.075,,df3sd3213215,,USD,314.1,314.1,Rapyd,,DFG21SE8FDGFH32G1K5YU321GH3DD,2024-04-30 Awesome Merchant LTD,123456795,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,Collections,2024-04-30,USD,46243.065,USD,46243.065,,dfs123ds1332,,USD,"3,551.88","3,551.88",Rapyd,,DFG21YTJ8GH32VBM1F8SD321DFGH8,2024-04-30 Awesome Merchant LTD,123456796,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,reserve\_return,2024-04-30,USD,800.12,USD,800.12,,werty3841000,,,,,Rapyd,,SDFG3218YJ36FGH1DF32DFR8J321FNH,2024-04-30 Awesome Merchant LTD,123456797,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,reserve\_return,2024-04-30,USD,8658.34,USD,8658.34,,eyy32165486,,,,,Rapyd,,SDFG1TH8321SD8SD32DFH1Y8651GN3SA,2024-04-30 Awesome Merchant LTD,123456798,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,reserve\_return,2024-04-30,USD,8728.435,USD,8728.435,,iuj2103165658,,,,,Rapyd,,DFG1YJ8FGN321X58SE3GFH1GHJ8FH,2024-04-30 [##### Merchant Settlement Report Beta](#idp266162_body) [###### File Version](#idp266164_body) The current file format version is _1.5_ ###### Header Format Line 1 of the CSV file contains the following information: ### Timestamps Format All timestamps are in UTC. | Field | Value | | --- | --- | | Report Title | Rapyd Merchant Settlement Report Beta | | Version | Report version number | | Merchant | The name of the organization as registered with Rapyd | | From | the string "From" | | Start date | Period start date | | To | the string "To" | | End date | Period end date | ###### Data Format The Merchant Settlement Beta report includes all the fields in the current report as well as the newly included fields. Starting from Line 2 of the CSV file, the information contained follows the below guideline: | Field | Value | | --- | --- | | Beneficiary Name | The beneficiary name of the account owner, as registered with Rapyd | | Account Number | The account number of the bank account to which the settlement was remitted to | | Bank Code | The bank code of the bank account to which the settlement was remitted to

The code may state SWIFT BIC, ABA, sort code, etc., depending on your bank's location. | | Wallet ID | The wallet ID funds were settled from | | Settlement Date | The date the settlement was processed and remitted by Rapyd.

Format: **YYYY-MM-DD** | | Settlement Currency | The currency of the transactions, as settled with the merchant. Format: Three-letter ISO 4217 code. Relevant to collections. | | Settlement Amount | The amount settled with the merchant for transactions that settled on the settlement date. | | Settlement Reference ID | The identifier of the settlement completed by Rapyd on the settlement configuration. | | Reserve Currency | The currency of the reserve funds. | | Reserve Amount in Reserve Currency | The total reserve amount denominated in the reserve currency. | | Reserve Amount in Settlement Currency | The total reserve amount denominated in the settlement currency. | | Initiator | Indicates whether the settlement is requested by Rapyd or the client. The settlement is requested by the client for **settlement on demand** transactions.

Possible Values:

* Rapyd

* Client | | Client Reference | The Settlement Reference ID for **settlement on demand** transactions. Other possible values: **null**. | | Settlement ID | The identifier of the settlement generated by Rapyd. | [##### Merchant Monthly Settlement Report](#idp266309_body) ###### Header Format Line 1 of the CSV file contains the following information: ### Timestamps Format All timestamps should be in UTC. | Field | Value | | --- | --- | | Report Title | Merchant Monthly Settlement Report | | Version | Version number. | | Merchant | Alias of the merchant. | | From | Start of the report. | | YYYY-MM-DD hh:mm:ss | Timestamp at start. | | To | End of the report. | | YYYY-MM-DD hh:mm:ss | Timestamp at end. | ###### Data Format ### Transactions Transactions closed within a day (again, UTC time) will be considered for settlement starting that day, i.e. the system's cutoff time is 12:00 AM UTC. | Field | Value | | --- | --- | | Account ID | Alias of the merchant's account on the Rapyd platform. Relevant to collections. | | Account Number | The merchant's account number at the merchant's bank. Relevant to collections. | | Bank | The name of the merchant's bank where the settlement is managed. Relevant to collections. | | Wallet ID | The wallet token from which the funds were settled. | | Type | * **Collections** - Transactions created by [Create Payment](create-payment.html "Create Payment")
or [Create Refund](create-refund.html "Create Refund")
. If the merchant has two or more accounts for collections, each account appears on a separate line.

* **Disbursements** - Transactions created by [Create Payout](create-payout.html "Create Payout")
.

* **Issued Bank Account** - Transactions collected via the bank account issuing platform. | | Settlement Date | The date when the funds were settled. | | Settlement Currency | The currency of the transactions, as settled with the merchant. Format: Three-letter ISO 4217 code. Relevant to collections. | | Settlement Amount | The amount settled with the merchant for transactions that settled on the settlement date. | | Settlement Wallet Account Currency | * Collections - The currency of the funds collected.

* Disbursements - The currency of the funds received by the beneficiary.


Three-letter ISO 4217 code. | | Settlement Amount in Wallet Account Currency | The client wallet currency equivalent of the amount settled with the merchant. | | Prev Negative Settlement | The total amount that the merchant owes to Rapyd from previous days. Relevant when there is a past negative remittance. | | Settlement Reference ID | The identifier of the settlement completed by Rapyd on the settlement configuration. | | Reserve Currency | The currency of the reserve funds. | | Reserve Amount in Reserve Currency | The total reserve amount denominated in the reserve currency. | | Reserve Amount in Settlement Currency | The total reserve amount denominated in the settlement currency. | | Settlement ID | The identifier of the settlement generated by Rapyd. | ###### Sample Report **Merchant Monthly Settlement Report** Merchant Monthly Settlement Report Beta,v1.5,Awesome Merchant LTD,From,2024/03/01,To,2024/04/01,,,,,,,,, Account ID,Account Number,Bank,Wallet ID,Type,Settlement Date,Settlement Currency,Settlement Amount,Settlement Wallet Account Currency,Settlement Amount in Wallet Account Currency,Prev Negative Settlement,Settlement Reference ID,Reserve Currency,Reserve Amount in Reserve Currency,Reserve Amount in Settlement Currency,Settlement ID Awesome Merchant LTD,123456789,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,Collections,2024-03-01,USD,62005.645,USD,62005.645,,ds321fds5sdf,USD,"4,758.96","4,758.96",SDFG5DFG321DFG6548UKJ3K321HJM3 Awesome Merchant LTD,123456790,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,Collections,2024-03-01,USD,61972.025,USD,61972.025,,dfg321df3dfg1,USD,"4,757.66","4,757.66",DFHF856GHJ231DF32GFH8YUJ321G3FGH1 Awesome Merchant LTD,123456791,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,Collections,2024-03-01,USD,6040.95,USD,6040.95,,dfg231311323d,USD,,,DFG231SDF685DF64T32H1B321DSF8DH Awesome Merchant LTD,123456792,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,reserve\_return,2024-03-01,USD,6041.86,USD,6041.86,,dfg21f3fg13212,,,,DFG21FHGJK89YU32HM1CB1SDFG654H Awesome Merchant LTD,123456793,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,reserve\_return,2024-03-01,USD,46079.805,USD,46079.805,,dfg213gd1se1,,"3,539.41","3,539.41",SDFG231GJ8YU3M21BVN8DFG321FGH13 Awesome Merchant LTD,123456794,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,reserve\_return,2024-03-01,USD,4056.075,USD,4056.075,,df3sd3213215,,314.1,314.1,DFG21SE8FDGFH32G1K5YU321GH3DD Awesome Merchant LTD,123456795,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,Collections,2024-03-02,USD,46243.065,USD,46243.065,,dfs123ds1332,USD,"3,551.88","3,551.88",DFG21YTJ8GH32VBM1F8SD321DFGH8 Awesome Merchant LTD,123456796,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,Collections,2024-03-02,USD,800.12,USD,800.12,,werty3841000,USD,333.45,333.45,SDFG3218YJ36FGH1DF32DFR8J321FNH Awesome Merchant LTD,123456797,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,Collections,2024-03-02,USD,8658.34,USD,8658.34,,eyy32165486,USD,321.22,321.22,SDFG1TH8321SD8SD32DFH1Y8651GN3SA Awesome Merchant LTD,123456798,Bank of America,ewallet\_fdfg321dfg54dfg321dfg3215dfg321df,reserve\_return,2024-03-02,USD,8728.435,USD,8728.435,,iuj2103165658,,,,DFG1YJ8FGN321X58SE3GFH1GHJ8FH In this section: Search results -------------- No results found * [Prev](merchant-reconciliation-report.html#idp265919) * [Next](merchant-settlement-report.html#idp265940) --- # Rapyd Payments Plugin for Wix [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Plugins](plugins.html) * [Plugins and Add-Ons](plugins-and-add-ons.html) * Rapyd Payments Plugin for Wix * [Prev](rapyd-payments-plugin-for-shopify.html#idp420695) * [Next](rapyd-payments-plugin-for-wix.html#idp420848) #### Rapyd Payments Plugin for Wix Accept cross-border payments from your OpenCart store. Offering more payment methods drives increased conversions and customer loyalty. Rapyd offers this plugin for over 50 countries. ### Rapyd Account Connection Limit You can only connect one store per Rapyd Account. You must be domiciled in one of the following countries in order to accept payments. [##### Supported Countries](#idp420848_body) Belgium, Cyprus, Hong Kong, Iceland, Mexico, Norway, Romania, Singapore, Switzerland, United Kingdom. ##### How to Activate Wix [###### Step 1: Get Started with Rapyd Payments](#idp420853_body) [Sign up](https://support.rapyd.net) With a Rapyd Client Portal Account, you can: * Activate and set up your plugin. * Optionally, create a transaction in your store. * View supported payment methods. * View payment reports. * Invite team members. * Complete KYB steps to fully activate your account. [###### Step 2: Activate Your Wix Plugin in Rapyd Client Portal](#idp420871_body) 1. Sign in to Client Portal and navigate to **Plugins**. Select the Wix panel. 2. On the **Wix** page, click the **Active** toggle button. ![6480904114727.gif](image/16763ca5c22e29.gif) [###### Step 3: Configure the Production Mode](#idp420884_body) ### Note The Client Portal must be in production mode. 1. Sign in to your Wix dashboard and go to **Settings > eCommerce and Finance**. 2. Click on **Accept Payments**. ![6480904c77cc8.png](image/16763ca5c2e5d3.png) ### Apple Pay European customers with an Apple account may use Apple Pay for purchases when using Safari. [See supported countries here](https://support.apple.com/en-us/HT207957) . 3. Scroll down to **Rapyd Payments**, and click **Manage Account**. ![6480904e2f595.png](image/16763ca5c37b22.png) The **Manage Your Account** window appears. ![6480904fa8a60.png](image/16763ca5c41553.png) 4. Enter your Rapyd **Access Key** and **Secret Key** for the production environment in the **Access key** and **Secret key** fields. See also [Plugins and Add-Ons](plugins-and-add-ons.html "Plugins and Add-Ons") . 5. Click the ‘Save’ button. F. To fully activate your account for production mode you’ll need to complete the KYB form for compliance review in the Rapyd Client Portal. ### Listing Payments in Client Portal In circumstances where the paid amount is less than the original amount, use the Client Portal to verify the actual amount that was paid, and not the store's admin portal. [###### Step 4: Set Up a Landing Page URL](#idp420926_body) After the checkout process completes, the customer can be forwarded to a landing page. This may be the main URL of the ecommerce site or any other landing page that you may want to define. To set the landing page URL: 1. Sign in to the Client Portal and navigate to **Settings > Branding**. ![648090a7f0443.png](image/16763ca5b83cc4.png) 2. Click on the link icon and enter the URL of the landing page in the **Fallback URL** field. ![648090aa75383.png](image/16763ca5b8cef6.png) 3. Click **Save**. In this section: Search results -------------- No results found * [Prev](rapyd-payments-plugin-for-shopify.html#idp420695) * [Next](rapyd-payments-plugin-for-wix.html#idp420848) --- # Delete Discount from Subscription [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription](subscription-364807.html) * Delete Discount from Subscription * [Prev](cancel-subscription.html) * [Next](subscription-errors.html) ###### Delete Discount from Subscription Delete the discount that was assigned to a subscription. This method does not affect the coupon that the discount was derived from. [###### Parameters](#idp305488_body) [###### Request Path Parameters](#idp305490_body) * * subscription * ID of the subscription. String starting with **sub\_**. [###### Request Header Parameters](#idp305500_body) [###### Response Parameters](#idp305550_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string subscription = "sub\_4802e0187b3c0acdd3ed8d0c00f85610"; string result = RapydApiRequestSample.Utilities.MakeRequest("DELETE", $"/v1/payments/subscriptions/{subscription}/discount"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const result = await makeRequest( 'DELETE', '/v1/payments/subscriptions/sub\_4802e0187b3c0acdd3ed8d0c00f85610/discount' ); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $object = make\_request('delete', '/v1/payments/subscriptions/sub\_4802e0187b3c0acdd3ed8d0c00f85610/discount'); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request result = make\_request(method='delete', path='/v1/payments/subscriptions/sub\_4802e0187b3c0acdd3ed8d0c00f85610/discount') pprint(result) * /v1/payments/subscriptions/:subscription/discount * Delete Discount from Subscription * curl -X delete https://sandboxapi.rapyd.net/v1/payments/subscriptions/sub\_4802e0187b3c0acdd3ed8d0c00f85610/discount -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "64fc61d1-7b02-45b4-9130-ef4683d1b912" }, "data": { "id": "dis\_4802e0187b3c0acdd3ed8d0c00f85610", "deleted": true } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](cancel-subscription.html) * [Next](subscription-errors.html) --- # Rapyd Payments Plugin for Shopify [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Plugins](plugins.html) * [Plugins and Add-Ons](plugins-and-add-ons.html) * Rapyd Payments Plugin for Shopify * [Prev](rapyd-payments-app-for-woocommerce.html#idp420663) * [Next](rapyd-payments-plugin-for-shopify.html#idp420690) #### Rapyd Payments Plugin for Shopify Convert more customers by accepting their preferred payment methods like ewallets, cash, and bank transfers. Offering more payment methods drives increased conversions and customer loyalty. Rapyd offers this plugin for over 50 countries. ### Rapyd Account Connection Limit You can only connect one store per Rapyd Account. You must be domiciled in one of the following countries in order to accept payments. [##### Supported Countries](#idp420690_body) Andorra, Armenia, Austria, Australia, Belgium, Bosnia and Herzegovina, Brazil, Bulgaria, Canada, Chile, Colombia, Croatia, Cyprus, Czech Republic, Denmark, Dominican Republic, El Salvador, Estonia, Finland, France, Georgia, Germany, Gibraltar, Greece, Greenland, Hong Kong, Hungary, Iceland, India, Indonesia, Ireland, Israel, Italy, Japan, Latvia, Liechtenstein, Lithuania, Luxembourg, Macedonia, Malaysia, Malta, Mexico, Moldova, Monaco, Montenegro, Netherlands, New Zealand, Norway, Peru, Philippines, Poland, Portugal, Romania, San Marino, Singapore, Slovakia, Slovenia, South Africa, South Korea, Spain, Sweden, Switzerland, Taiwan, Thailand, Turkey, UK, Vatican, Vietnam ##### How to Activate Shopify [###### Step 1: Get Started with Rapyd Payments](#idp420695_body) [Sign up](https://support.rapyd.net) With a Rapyd Client Portal Account, you can: * Activate and set up your plugin. * Access sandbox mode and test payments. * View supported payment methods. * View payment reports. * Invite team members. * Complete KYB steps to fully activate your account. [###### Step 2: Installation on Shopify](#idp420713_body) 1. Go to the Shopify App page by clicking on this [link](https://apps.shopify.com/rapyd-payments) . ![64809023e0635.png](image/16763ca5b9a56c.png) 2. Click on the **Add App** button, and then select the Shopify store from the list. If the store is not in the list then click on the **Log in with shop URL** link. ![6480902120c64.png](image/16763ca5ba3c17.png) 3. Click on the **Install app** button. ![64809026e50d7.png](image/16763ca5bae6b9.png) [###### Step 3: Activate the Shopify Plugin in Rapyd Client Portal](#idp420735_body) ### Note You can activate only **one** Shopify store per set of Rapyd plugin keys. If you have multiple Shopify stores then create a Rapyd instance per store. An attempt to activate multiple Shopify stores with the same Rapyd plugin keys will fail. 1. Sign in to Client Portal and navigate to **Plugins**. 2. In the **ShopifyApp** window, click the **Active** toggle button, and copy the **Secret Key** and **Access Key** of the production environment. ![64809028b49a2.gif](image/16763ca5bb8ba7.gif) ### Note You can search supported countries in the search bar. 3. Paste your Shopify plugin **Secret Key** and **Access Key** for the production environment in the Shopify onboarding page. ![6480902eacf24.png](image/16763ca5bc26bb.png) 4. Set the mode to **Sandbox** by toggling its button as displayed in the following screenshot. ![648090304f23d.png](image/16763ca5bcb810.png) 5. Copy the Shopify plugin sandbox keys to the Shopify onboarding page, and then click the **Submit** button. ![64809031c3b53.png](image/16763ca5bd4b89.png) [###### Step 4: Testing the Shopify Plugin](#idp420774_body) ### Note When test mode is activated, all transactions are simulated. 1. Scroll down to the bottom of the page, and click on the **Activate Rapyd Payments** button. In the Rapyd Payments setup section, select the **Enable test mode** checkbox, and click the **Save** button. ![64809033f058a.png](image/16763ca5bde591.png) 2. Go to your Shopify store as a customer and add an item to the cart. 3. Add the customer details and then move to the payment screen. Select **Rapyd Payments** as the payment method. ![648090358578d.png](image/16763ca5be9006.png) 4. Click **Complete Order**. ![648090376cdd8.png](image/16763ca5bf3b1c.png) 5. The browser redirects to a Rapyd checkout page for completing the payment. ![64809038f1ad9.png](image/16763ca5c0dded.png) 6. Order Cancellation: When an order is canceled, the underlying payment is supposed to be canceled as well. However, if that process fails because of a communications failure or other cause, the list of orders in the Shopify interface does not show the failure of the cancellation of the payment. To verify the status of the payment, you must select the specific order transaction and view its **Timeline**. ![6480903ac81a8.png](image/16763ca5c190bc.png) After you have finished testing the plugin, you can switch to **production** mode. ### Apple Pay European customers with an Apple account may use Apple Pay for purchases when using Safari. [See supported countries here](https://support.apple.com/en-us/HT207957) . ### Note The **Accepted Payments** section displays the enabled payment methods. Specific payment methods cannot be disabled. [###### Step 5: Set up a Landing Page URL](#idp420821_body) After the checkout process completes, the customer can be forwarded to a landing page. This may be the main URL of the ecommerce site or any other landing page that you may want to define. To set the landing page URL: 1. Sign in to the Client Portal and navigate to **Settings > Branding**. ![648090a7f0443.png](image/16763ca5b83cc4.png) 2. Click on the link icon and enter the URL of the landing page in the **Fallback URL** field. ![648090aa75383.png](image/16763ca5b8cef6.png) 3. Click **Save**. In this section: Search results -------------- No results found * [Prev](rapyd-payments-app-for-woocommerce.html#idp420663) * [Next](rapyd-payments-plugin-for-shopify.html#idp420690) --- # Subscription Canceled Webhook [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription Webhooks](subscription-webhooks.html) * Subscription Canceled Webhook * [Prev](new-cycle-started-webhook.html) * [Next](subscription-past-due-webhook.html) ###### Subscription Canceled Webhook The **CUSTOMER\_SUBSCRIPTION\_CANCELED** webhook is sent when a subscription is canceled. [###### Parameters](#idp315787_body) [###### Webhook Header Parameters](#idp315789_body) [###### Webhook Root Parameters](#idp315829_body) [###### Webhook Data Parameters](#idp315902_body) * CUSTOMER\_SUBSCRIPTION\_CANCELED Webhook * { "id": "wh\_c83f08b52d072cd6168a081cf7c1d612", "type": "CUSTOMER\_SUBSCRIPTION\_CANCELED", "data": { "id": "sub\_005ca057b15771a535469a60ccce98a2", "type": "payment", "status": "canceled", "billing": "pay\_automatically", "discount": null, "ended\_at": null, "metadata": {}, "trial\_end": null, "created\_at": 1641802550, "canceled\_at": 1642032359, "tax\_percent": 0, "trial\_start": null, "payout\_fields": null, "customer\_token": "cus\_d3ed65d5091a8398cc3651bcedec1201", "days\_until\_due": null, "payment\_fields": null, "payment\_method": "card\_85264b18bc1bfb949dbb2d88d3d5c12c", "current\_period\_end": 1642032359, "subscription\_items": { "url": "/v1/subscription\_items?subscription=sub\_005ca057b15771a535469a60ccce98a2", "data": \[{\ "id": "subi\_139cc833a43aa340ee25ca59a4a34ea6",\ "plan": {\ "id": "plan\_a2b5060d3e93d4c32883ac2b39c3f2de",\ "tiers": \[\],\ "amount": 1050,\ "product": {\ "id": "product\_2ddd6f6b43f598d30543ef23ab806b58",\ "name": "Acme music stream",\ "skus": \[\],\ "type": "services",\ "active": true,\ "images": \[\],\ "metadata": {},\ "shippable": false,\ "attributes": \[\],\ "created\_at": 1641481860,\ "unit\_label": "",\ "updated\_at": 1641481860,\ "description": "",\ "package\_dimensions": {\ "width": 0,\ "height": 0,\ "length": 0,\ "weight": 0\ },\ "statement\_descriptor": ""\ },\ "currency": "USD",\ "interval": "day",\ "metadata": {},\ "nickname": "Plan 1050",\ "created\_at": 1641802015,\ "tiers\_mode": "",\ "usage\_type": "licensed",\ "billing\_scheme": "per\_unit",\ "interval\_count": 1,\ "aggregate\_usage": "sum",\ "transform\_usage": {\ "round": "up",\ "divide\_by": 1\ },\ "trial\_period\_days": 0\ },\ "created": 1641802550,\ "metadata": null,\ "quantity": 1\ }\ \], "has\_more": false, "total\_count": 0 }, "billing\_cycle\_anchor": 1641802550, "cancel\_at\_period\_end": true, "current\_period\_start": 1641975350 }, "trigger\_operation\_id": "b55a493d-ae8a-4eb8-93a3-2624145a58ef", "status": "NEW", "created\_at": 1642032362,     "extended\_timestamp": 1642032362666, } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](new-cycle-started-webhook.html) * [Next](subscription-past-due-webhook.html) --- # Rapyd Payments Plugin for Magento [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Plugins](plugins.html) * [Plugins and Add-Ons](plugins-and-add-ons.html) * Rapyd Payments Plugin for Magento * [Prev](rapyd-payments-plugin-for-wix.html#idp420926) * [Next](rapyd-payments-plugin-for-magento.html#idp420953) #### Rapyd Payments Plugin for Magento Connect your Magento ecommerce site to card acceptance and hundreds of local payment methods across the globe. Offering more payment methods drives increased conversions and customer loyalty. Rapyd offers this plugin for over 50 countries. ### Rapyd Account Connection Limit You can only connect one store per Rapyd Account. You must be domiciled in one of the following countries in order to accept payments. [##### Supported Countries](#idp420953_body) Andorra, Armenia, Austria, Australia, Belgium, Bosnia and Herzegovina, Brazil, Bulgaria, Canada, Chile, Colombia, Croatia, Cyprus, Czech Republic, Denmark, Dominican Republic, El Salvador, Estonia, Finland, France, Georgia, Germany, Gibraltar, Greece, Greenland, Hong Kong, Hungary, Iceland, India, Indonesia, Ireland, Israel, Italy, Japan, Latvia, Liechtenstein, Lithuania, Luxembourg, Macedonia, Malaysia, Malta, Mexico, Moldova, Monaco, Montenegro, Netherlands, New Zealand, Norway, Peru, Philippines, Poland, Portugal, Romania, San Marino, Singapore, Slovakia, Slovenia, South Africa, South Korea, Spain, Sweden, Switzerland, Taiwan, Thailand, Turkey, UK, USA, Vatican, Vietnam, Virgin Islands (USA) [##### Prerequisites](#UUID-0a72a4f5-3b33-564b-0422-39cda598528f_UUID-31e22f75-c283-d617-f62b-85a846cca08a_body) Rapyd Client Portal account With a Rapyd Client Portal account, you can: * Activate and set up your plugin. * Access sandbox mode and test payments. * View supported payment methods. * View payment reports. * Invite team members. * Complete KYB steps to fully activate your account. [Sign up](https://support.rapyd.net) ##### How to Activate Magento [###### Step 1: Activate the Plugin in Rapyd Client Portal](#idp420977_body) 1. Sign in to Client Portal and navigate to **Plugins**. Select **Magento**. 2. In the **Magento** window, click the **Active** toggle button. ### Note You can search supported countries in the search bar. ![648090577eb77.gif](image/16763ca5c4aa25.gif) [###### Step 2: Plugin Installation on Magento](#idp420993_body) [###### Prerequisites](#idp420995_body) * Enable the `cron` command on your system. See also Magento's [documentation](https://devdocs.magento.com/guides/v2.3/config-guide/cli/config-cli-subcommands-cron.html) . * Verify that the web server has full write permissions to the Magento directory. This can be achieved by running the following terminal command: $ chown –R /magento\_directory [###### Installation via Magento Admin Panel](#idp421005_body) 1. Place an order for the Rapyd plugin via the [Magento Marketplace](https://marketplace.magento.com) . ### Note Magento calls its Plugins 'Extensions'. 2. Sign in to your Magento Admin Panel. 3. Navigate to **System > Tools > Web Setup Wizard**. ![6480906beabe6.png](image/16763ca5c55c76.png) 4. Click on **Extension Manager** 5. Enter your Magento Marketplace authentication keys that can be found on the Magento Marketplace. 6. Go to your [Magento Marketplace Account section](https://account.magento.com/customer/account/login) , and click **Install** in **New Purchases**. Follow the other instructions on that page to fully install the plugin. ### Note The installation may take 5 minutes or more. Leave the window open to allow the installation to finish. A successful installation can be verified by checking that the contents in the the directory **var/.update\_\*** have been updated. [###### Installation via Composer](#idp421034_body) 1. Run the following terminal command in your Magento directory: $ composer require rapyd/rapydmagento2 ### Note Verify that you saved the authentication keys. 2. Set up the plugin by running the following terminal commands: $ php bin/magento setup:upgrade > php bin/magento cache:flush > php bin/magento cache:clean 3. Compile and deploy the static files via the following terminal commands: $ php bin/magento setup:di:compile > php bin/magento setup:static-content:deploy [###### Step 3: Configure the Plugin for Testing](#UUID-0a72a4f5-3b33-564b-0422-39cda598528f_UUID-df1e75be-e5fd-c354-dac0-48ee30a3c28a_body) 1. In the Admin Panel, go to **Stores > Configuration**. ![6480906e0ad83.png](image/16763ca5c5f53f.png) 2. In the Configuration window, click on **Sales > Payment Methods**. ![6480906fb9c62.png](image/16763ca5c6980b.png) 3. Scroll down to the **Rapyd Payment Settings** that is located in the **Other Payment Methods** section. ![6480907186c5b.png](image/16763ca5c72f88.png) 4. Set the **Enabled** and **Test Mode** fields to 'Yes' 5. Enter your Rapyd **Access Key** and **Secret Key** for the sandbox environment in the **Test access key** and **Test secret key** fields. See also [Plugins and Add-Ons](plugins-and-add-ons.html "Plugins and Add-Ons") 6. Enter '1' in the Sort Order field. ### Note The Rapyd Client Portal must be in sandbox mode during the testing phase. Refer to [Developers](developers.html "Developers") on how to switch to sandbox. ![648090730e299.png](image/16763ca5c7ca3a.png) 7. Click on the **Save Config** button. [###### Step 4: Testing the Plugin](#UUID-0a72a4f5-3b33-564b-0422-39cda598528f_UUID-105a4b3a-2a6a-fdb6-6ee3-5a703c1813fe_body) 1. Go to your Magento test site as a customer and add an item to the cart. 2. Click on the number next to the shopping cart icon, and then click on the **Proceed to Checkout** banner. ![64809074788b4.png](image/16763ca5c8530a.png) 3. Fill in all the required **Shipping** fields and click **Next**. ![648090761a811.png](image/16763ca5c8e59a.png) 4. Select a Rapyd payment method. 5. Click on the **Place Order** button. ![64809077f2438.png](image/16763ca5c97c18.png) 6. If required, enter additional payment details, and click the **Click to Pay** button. ![64809079d37d1.png](image/16763ca5ca35da.png) 7. Click the **Finish** button on the screen that appears. ![6480907b6fd52.png](image/16763ca5cad281.png) 8. The last payment screen displays the status of the payment. ![6480907d54876.png](image/16763ca5cb76ed.png) 9. Go to the **Sales > Orders** section of the Magento Admin panel and verify that the payment you have made is displayed. ![6480907f1c606.png](image/16763ca5cc1a23.png) After you have finished testing the plugin, you can switch to production mode. [###### Step 5: Configuring the Plugin for Production](#UUID-0a72a4f5-3b33-564b-0422-39cda598528f_UUID-643560b3-c15b-6cc0-c382-81e7bcd25dca_body) 1. Access the Rapyd Client Portal and set the Client Portal to production mode. 2. Sign in to your Magento Admin Panel, and scroll down to the **Rapyd Payment Settings** that is located in the **Other Payment Methods** section. ![648090730e299.png](image/16763ca5c7ca3a.png) 3. Set the **Enabled** field to 'Yes', and enter your Rapyd **Secret Key** and **Access Key** for the production environment. Note that these keys are different from the sandbox keys. See also [Plugins and Add-Ons](plugins-and-add-ons.html "Plugins and Add-Ons") . 4. Set the **Test Mode** field to 'No'. ![64809081e7c56.png](image/16763ca5cca5e3.png) 5. Click on the **Save Config** button. [###### Step 6: Set Up a Landing Page URL](#UUID-0a72a4f5-3b33-564b-0422-39cda598528f_UUID-9972fd2f-f45c-913c-f13f-04c60dd73ca6_body) After the checkout process completes, the customer can be forwarded to a landing page. This may be the main URL of the ecommerce site or any other landing page that you may want to define. To set the landing page URL: 1. Sign in to the Client Portal and navigate to **Settings > Branding**. ![648090a7f0443.png](image/16763ca5b83cc4.png) 2. Click on the link icon and enter the URL of the landing page in the **Fallback URL** field. ![648090aa75383.png](image/16763ca5b8cef6.png) 3. Click **Save**. In this section: Search results -------------- No results found * [Prev](rapyd-payments-plugin-for-wix.html#idp420926) * [Next](rapyd-payments-plugin-for-magento.html#idp420953) --- # Creating a Customer Support Ticket [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Client Support](client-support.html) * Creating a Customer Support Ticket * [Prev](client-support.html#idp247911) * [Next](creating-a-customer-support-ticket.html#idp247921) #### Creating a Customer Support Ticket Connect with our support team. [##### How to Submit a Support Ticket](#idp247921_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and click on the question mark icon in the upper right corner. ![creating-support-ticket-flow-1.png](image/16763ca3c8a4ef.png) 2. The **Support center** page appears. ![creating-support-ticket-flow-2.png](image/16763ca3c93c7a.png) 3. Click the **Contact support** button in the upper right corner. ![creating-support-ticket-flow-3.png](image/16763ca3c9cda2.png) 4. The **Contact support** panel appears. 5. Complete the Description field, and click **Next**. ![creating-support-ticket-flow-4.png](image/16763ca3ca748d.png) 6. Complete the following required fields: * **Category** - general, technical, or financial query * **Environment** - Production or Sandbox * **Subject** - The subject of the ticket * **Discovery date** - The time frame when the issue was discovered * **Total transaction value** - The value of the affected transaction * **How many transactions or users were affected** - Single, Partial, All, or Not relevant 7. Click **Next**. ![creating-support-ticket-flow-5.png](image/16763ca3cb1b0a.png) 8. (Optional) Upload any relevant files for your support ticket by clicking the **+** button. ![creating-support-ticket-flow-6.png](image/16763ca3cbb658.png) 9. Click **Submit**. You can follow up an urgent ticket with our support hotline: | Location | Phone Number | | --- | --- | | United States | +1-209-638-4373 | | United Kingdom | +44 20 3398 1076 | | United Kingdom | +44 20 3744 3095 (POS support) | | Singapore | +65 6016 3021 | In this section: Search results -------------- No results found * [Prev](client-support.html#idp247911) * [Next](creating-a-customer-support-ticket.html#idp247921) --- # Save Card Details With Rapyd Checkout [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Collect](rapyd-collect.html) * [Rapyd Checkout Overview](rapyd-checkout-overview.html) * Save Card Details With Rapyd Checkout * [Prev](complete-payment.html#idp217923) * [Next](save-card-details-with-rapyd-checkout.html#idp217948) ##### Save Card Details With Rapyd Checkout The Rapyd Checkout page allows you to save a customer’s card details when they make a payment. You can use the saved payment information for future payments. The saved card information is tokenized, which follows PCI-DSS standards. This allows sensitive information to be stored safely. Saving card details using the Rapyd Checkout Page enables you to link the card details to the customer. [###### Save Card Details With Rapyd Checkout Page Example](#idp217948_body) 1. Enter your card information. ![save-card-details-rapyd-checkout-flow-1.png](image/16763ca304a655.png) 2. (Optional): Click the **Save card for future payments** checkbox. 3. Click **Place Your Order** to complete the payment. 4. Redirect to the payment success page. 5. Click **Finish**. [###### Save Card Details With Rapyd Checkout Page Workflow](#idp217967_body) ![payment-links-flow-4.png](image/16763ca306bed0.png) 1. You request Rapyd to generate a Hosted Checkout Page. 2. Rapyd processes your request and sends the response with the redirect URL. 3. You display the redirect URL to the customer. 4. The customer completes the payment on the hosted page. [###### Card Payment Rapyd Checkout Message Sequences](#idp217981_body) The message sequence diagrams below describe how information is exchanged between Rapyd, the merchant, the merchant's customers, and the card network. Card Payment Rapyd Checkout - Success ![checkout-card-success.svg](image/16763ca30930a1.svg) Card Payment Rapyd Checkout - Failure ![checkout-card---payment-declined.svg](image/16763ca309c234.svg) [###### How Saving Card Details With Rapyd Checkout Works](#idp217992_body) You need to complete the following steps in order to generate a Hosted Checkout Page: 1. [Create a Customer](create-customer.html "Create Customer") (API Integration or via the Client Portal) 2. Generate a Hosted Checkout Page (API Integration or via the Client Portal) [###### Generating the Hosted Checkout Page](#idp218001_body) You must pass the customer ID (a string starting with **cus\_**) in the request when generating the Hosted Checkout Page. This enables the card details to be saved for future payments. Description of Body Parameters See [Create Checkout Page](create-checkout-page.html "Create Checkout Page") for additional details about the parameters. | Body Parameter | Required | Description | | --- | --- | --- | | amount | yes | The amount of the payment, in units of currency defined in **currency**. | | country | yes | The two-letter ISO 3166-1 ALPHA-2 code for the country. | | currency | yes | Three-letter ISO 4217 code for the currency. | | customer | no | ID of the customer, a string starting with **cus\_**.

**Note**: Must be included to enable the card details to be saved. | ###### Create Checkout Page Request * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/checkout // Message body: { "amount": 123.45, "complete\_payment\_url": "http://example.com/complete", "country": "GB", "currency": "GBP", "customer": "cus\_ecfab8b87e2fa11d66b95cc1f2c94037", "error\_payment\_url": "http://example.com/error", "merchant\_reference\_id": "950ae8c6-78", "cardholder\_preferred\_currency": true, "language": "en", "metadata": { "merchant\_defined": true }, "expiration": 1708498532, "payment\_method\_types\_exclude": \[\] } ###### Create Checkout Page Response [Create Checkout Page](create-checkout-page.html "Create Checkout Page") describes the fields in the response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "47d0211e-9da3-4846-ae28-f7fc1d2438da" }, "data": { "id": "checkout\_0d7e080a7162c785ebcb8b416b1c0860", "status": "NEW", "language": "en", "merchant\_color": null, "merchant\_logo": null, "merchant\_website": "https://www.rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "N/A", "merchant\_terms": null, "merchant\_privacy\_policy": null, "page\_expiration": 1708565261, "redirect\_url": "https://sandboxcheckout.rapyd.net/?token=checkout\_0d7e080a7162c785ebcb8b416b1c0860", "merchant\_main\_button": "place\_your\_order", "cancel\_checkout\_url": "https://www.rapyd.net", "complete\_checkout\_url": "https://www.rapyd.net", "country": "GB", "currency": "GBP", "amount": 123.45, "payment": { "id": null, "amount": 123.45, "original\_amount": 0, "is\_partial": false, "currency\_code": "GBP", "country\_code": "GB", "status": null, "description": "Payment via Checkout", "merchant\_reference\_id": "950ae8c6-78", "customer\_token": "cus\_ecfab8b87e2fa11d66b95cc1f2c94037", "payment\_method": null, "payment\_method\_data": {}, "expiration": 1708498532, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": null, "redirect\_url": null, "complete\_payment\_url": "http://example.com/complete", "error\_payment\_url": "http://example.com/error", "receipt\_number": null, "flow\_type": null, "address": null, "statement\_descriptor": null, "transaction\_id": null, "created\_at": 0, "updated\_at": 0, "metadata": { "merchant\_defined": true }, "failure\_code": null, "failure\_message": null, "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": null, "payment\_method\_type\_category": null, "fx\_rate": null, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": null, "payment\_fees": null, "invoice": null, "escrow": null, "group\_payment": null, "cancel\_reason": null, "initiation\_type": null, "mid": null, "next\_action": "not\_applicable" }, "payment\_method\_type": null, "payment\_method\_type\_categories": null, "payment\_method\_types\_include": null, "payment\_method\_types\_exclude": \[\], "account\_funding\_transaction": null, "customer": "cus\_ecfab8b87e2fa11d66b95cc1f2c94037", "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "timestamp": 1707355661, "payment\_expiration": null, "cart\_items": \[\], "escrow": null, "escrow\_release\_days": null } } In this section: Search results -------------- No results found * [Prev](complete-payment.html#idp217923) * [Next](save-card-details-with-rapyd-checkout.html#idp217948) --- # Rapyd Payments App for Ecwid [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Plugins](plugins.html) * [Plugins and Add-Ons](plugins-and-add-ons.html) * Rapyd Payments App for Ecwid * [Prev](rapyd-payments-plugin-for-magento.html#UUID-0a72a4f5-3b33-564b-0422-39cda598528f_UUID-9972fd2f-f45c-913c-f13f-04c60dd73ca6) * [Next](rapyd-payments-app-for-ecwid.html#idp421198) #### Rapyd Payments App for Ecwid Start accepting payments from your Ecwid store. With Rapyd, you can quickly accept more payment methods from more countries. Payment methods like ewallets, bank transfers, cards and cash. Rapyd offers this Ecwid add-on in over 50 countries. ### Rapyd Account Connection Limit You can only connect one store per Rapyd Account. You must be domiciled in one of the following countries in order to accept payments. [##### Supported Countries](#idp421198_body) Andorra, Armenia, Austria, Australia, Belgium, Bosnia and Herzegovina, Brazil, Bulgaria, Canada, Chile, Colombia, Croatia, Cyprus, Czech Republic, Denmark, Dominican Republic, El Salvador, Estonia, Finland, France, Georgia, Germany, Gibraltar, Greece, Greenland, Hong Kong, Hungary, Iceland, India, Indonesia, Ireland, Israel, Italy, Japan, Latvia, Liechtenstein, Lithuania, Luxembourg, Macedonia, Malaysia, Malta, Mexico, Moldova, Monaco, Montenegro, Netherlands, New Zealand, Norway, Peru, Philippines, Poland, Portugal, Romania, San Marino, Singapore, Slovakia, Slovenia, South Africa, South Korea, Spain, Sweden, Switzerland, Taiwan, Thailand, Turkey, UK, USA, Vatican, Vietnam, Virgin Islands (USA) [##### Prerequisites](#UUID-27d7ae92-6b2e-85af-c2c2-6fea5dd74eda_UUID-31e22f75-c283-d617-f62b-85a846cca08a_body) Rapyd Client Portal account With a Rapyd Client Portal account, you can: * Activate and set up your plugin. * Access sandbox mode and test payments. * View supported payment methods. * View payment reports. * Invite team members. * Complete KYB steps to fully activate your account. [Sign up](https://support.rapyd.net) ##### How to Activate Ecwid [###### Step 1: Activate the App from the Rapyd Client Portal](#idp421222_body) 1. Sign in to Client Portal and navigate to **Plugins**. Click **Ecwid**. 2. On the **Ecwid** page, click the **Active** toggle button. ### Note You can search supported countries in the search bar. ![648090ae0f1a2.gif](image/16763ca5cd3a80.gif) [###### Step 2: Add the App from the Ecwid Control Panel](#idp421238_body) 1. In the Ecwid control panel, go to **Payment**. ![648090badde23.png](image/16763ca5cde776.png) 2. Scroll down to the **Payment Alternatives** section, and select **Rapyd Payments** from the **Choose Payment Processor** dropdown menu. ![648090bccb713.png](image/16763ca5ce7bf2.png) 3. Click on the **Add Payment Method** button that appears on the pop-up window. ![648090be4345b.png](image/16763ca5cf0b51.png) ### Note **Apple Pay** European customers with an Apple account may use Apple Pay for purchases when using Safari. [See supported countries here](https://support.apple.com/en-us/HT207957) . The **Rapyd Payments** account details page appears. ![648090bfd4812.png](image/16763ca5d05e7d.png) [###### Step 3: Configure the Sandbox Mode](#idp421271_body) ### Note The Client Portal must be in sandbox mode during this testing phase. See [Developers](developers.html "Developers") . 1. In the **Rapyd Payments** account details page, click the **Enable test mode** toggle button. 2. Enter your Rapyd **Access Key** and **Secret Key** for the sandbox environment in the **Test Access key** and **Test Secret key** fields. Note that you should use the unique production keys for the Ecwid plugin. See also [Viewing Plugin Keys](plugins-and-add-ons.html "Plugins and Add-Ons") 3. In the **Appearance options** section, enter a name for the payment method as it will appear in your site’s checkout screen. It is recommended that you provide a name that indicates a test mode. 4. Click on the **Enable this payment method at checkout** toggle button. ![648090c1bd441.png](image/16763ca5d0f1d8.png) 5. Click the **Save** button. 6. Go to the **Cart & Checkout** tab in **Settings > General**, and enable the **Ask for a billing address during checkout** setting. ![648090c3d6aee.png](image/16763ca5d17cc3.png) ### Note This billing address setting should also be enabled during production mode. [###### Step 4: Testing the App](#idp421310_body) 1. Go to your Ecwid ecommerce site as a customer and add an item to the cart. 2. Click on the **Go to Checkout** button. ![648090c5dee66.png](image/16763ca5d2143d.png) 3. Enter your email address and click the **Checkout** button. ![648090c99e2b9.png](image/16763ca5d2ad5a.png) 4. Select the **Rapyd Payments** method, enter a billing address, and click on the **Go to Payment** button. ![648090cb2e1a9.png](image/16763ca5d3344a.png) 5. For testing purposes, select any type of payment and fill in the additional fields. For example, enter the following test values for a Mastercard card payment: * Card: Mastercard * Card number: 4111 1111 1111 1111 * Expiration Date: 12/23 * CVV Code: 123 * Cardholder Name: John Doe 6. Click on the **Place Your Order** button. ![648090ccad376.png](image/16763ca5d3e1b3.png) 7. Click the **Finish** button on the **Payment Successful** screen that appears. ![648090ce7e4c7.png](image/16763ca5d47c39.png) A confirmation message appears. ![648090d006b4b.png](image/16763ca5d4ffcb.png) 8. Go to the **My Sales > Orders** section of the Ecwid Admin panel and verify that the payment you have made is displayed with the correct status. ![648090d1635d3.png](image/16763ca5d58332.png) After you have finished testing the app, you can switch to production mode. [###### Step 5: Configure the Production Mode](#idp421371_body) ### Note The Client Portal must be in production mode. See [Home Page](home-page.html "Home Page") . 1. In the Ecwid control panel, go to **Payment**. 2. Click on the **Actions** button of the **Rapyd Payments** window and select **Edit**. ![648090d2d64a9.png](image/16763ca5d61867.png) The **Rapyd Payments** account details page appears: ![648090c1bd441.png](image/16763ca5d0f1d8.png) 3. Click the **Enable test mode** toggle button to disable it. 4. Enter your Rapyd **Access Key** and **Secret Key** for the production environment in the **Access key** and **Secret key** fields. Note that you should use the unique production keys for the Ecwid plugin. See also [Viewing Plugin Keys](plugins-and-add-ons.html "Plugins and Add-Ons") . 5. In the **Appearance options** section, enter a name for the payment method as it will appear in your site’s checkout screen. It is recommended that you provide a name that indicates a payment method that your customers can use. ![648090d684ea8.png](image/16763ca5d69bab.png) 6. Click the **Save** button. 7. To fully activate your account for production mode, you’ll need to complete the KYB form for compliance review in the Rapyd Client Portal. [###### Step 6: Set Up a Landing Page URL](#idp421414_body) After the checkout process completes, the customer can be forwarded to a landing page. This may be the main URL of the ecommerce site or any other landing page that you may want to define. To set the landing page URL: 1. Sign in to the Client Portal and navigate to **Settings > Branding**. ![648090a7f0443.png](image/16763ca5b83cc4.png) 2. Click on the link icon and enter the URL of the landing page in the **Fallback URL** field. ![648090aa75383.png](image/16763ca5b8cef6.png) 3. Click **Save**. ### Note For more information on customizing your checkout page, see [Hosted Checkout Page Integration](hosted-checkout-page-integration.html "Hosted Checkout Page Integration") . In this section: Search results -------------- No results found * [Prev](rapyd-payments-plugin-for-magento.html#UUID-0a72a4f5-3b33-564b-0422-39cda598528f_UUID-9972fd2f-f45c-913c-f13f-04c60dd73ca6) * [Next](rapyd-payments-app-for-ecwid.html#idp421198) --- # Rapyd Payments Plugin for PrestaShop [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Plugins](plugins.html) * [Plugins and Add-Ons](plugins-and-add-ons.html) * Rapyd Payments Plugin for PrestaShop * [Prev](rapyd-payments-app-for-ecwid.html#idp421414) * [Next](rapyd-payments-plugin-for-prestashop.html#idp421446) #### Rapyd Payments Plugin for PrestaShop Accept cross-border payments from your OpenCart store. Offering more payment methods drives increased conversions and customer loyalty. Rapyd offers this plugin for over 50 countries. Download it now from the [PrestaShop Addons Marketplace](https://addons.prestashop.com/en/payment-card-wallet/86167-rapyd-payments.html) or from your PrestaShop control panel. For detailed information, read the full instructions on this page. ### Rapyd Account Connection Limit You can only connect one store per Rapyd Account. You must be domiciled in one of the following countries in order to accept payments. [##### Supported Countries](#idp421446_body) Andorra, Australia, Austria, Belgium, Bosnia and Herzegovina, Brazil, Bulgaria, Canada, Chile, Colombia, Croatia, Cyprus, Czech Republic, Denmark, Dominican Republic, El Salvador, Estonia, Finland, France, Georgia, Germany, Gibraltar, Greece, Greenland, Hong Kong, Hungary, Iceland, India, Indonesia, Ireland, Israel, Italy, Japan, Latvia, Liechtenstein, Lithuania, Luxembourg, Macedonia, Malaysia, Malta, Mexico, Moldova, Monaco, Montenegro, Netherlands, New Zealand, Norway, Peru, Philippines, Poland, Portugal, Romania, San Marino, Singapore, Slovak Republic (Slovakia), Slovenia, South Africa, South Korea, Spain, Sweden, Switzerland, Taiwan, Thailand, Turkey, United Kingdom, United States of America (USA), Vatican, Vietnam, Virgin Islands (US) ##### How to Activate PrestaShop [###### Step 1: Get Started with Rapyd Payments](#idp421451_body) [Sign up](https://support.rapyd.net) **With a Rapyd Client Portal Account, you can:** * Activate and set up your plugin. * Access sandbox mode and test payments. * View supported payment methods. * View payment reports. * Invite team members. * Complete KYB steps to fully activate your account. [###### Step 2: Activate the Module from the Rapyd Client Portal](#idp421470_body) 1. Sign in to Client Portal and navigate to **Plugins**: Click **PrestaShop**. ![648090dd5ff1a.gif](image/16763ca5d7310f.gif) 2. In the **PrestaShop** window, click the **Active** toggle button. [###### Step 3: Add the Module from the PrestaShop Dashboard](#idp421484_body) In the PrestaShop website, search for the Rapyd module in the modules marketplace, or click on this direct [link](https://addons.prestashop.com/en/payment-card-wallet/86167-rapyd-payments.html) . ![648090ea65511.png](image/16763ca5d7d90e.png) After purchasing the module, download it. C. In the PrestaShop dashboard, go to **Improve > Modules > Module Manager**, and upload the module. ![648090ebbb13b.png](image/16763ca5d888d0.png) [###### Step 4: Configure the Sandbox Mode](#idp421496_body) ### Note The Client Portal must be in sandbox mode during this testing phase. 1. In the PrestaShop dashboard, go to **Improve > Modules > Module Manager**. ![648090ed233e7.png](image/16763ca5d913ca.png) 2. Scroll down to the Payments section and click on the **Configure** button of Rapyd Payments. ![648090eec1edc.png](image/16763ca5d9c6fb.png) The **Payment methods** page appears. All Rapyd payment methods are automatically enabled. ![648090f0940c3.png](image/16763ca5da59c3.png) 3. Click on the **Yes** button of the **Enable test mode** setting. 4. Enter your Rapyd Access Key and Secret Key for the sandbox environment in the **Test Access key** and **Test Secret key** fields. Note that you should use the unique sandbox keys for the PrestaShop module. See also [Plugins and Add-Ons](plugins-and-add-ons.html "Plugins and Add-Ons") . ![648090f2163d0.png](image/16763ca5dadc0e.png) 5. Click the **Save** button. [###### Step 5: Test the Module](#idp421533_body) 1. Go to your PrestaShop store site as a customer and add an item to the cart. 2. Click on the **Proceed to Checkout** button. ![648090f3b754d.png](image/16763ca5db7a66.png) 3. Enter the required data in the **Personal**, **Addresses**, and **Shipping Method** sections, and then click **Continue**. ![648090f569c48.png](image/16763ca5dc1482.png) 4. In the Payment section, select the **Bank - Test Mode** method, and select the **Terms of Service** checkbox. ![648090f716777.png](image/16763ca5dcac98.png) 5. Click the **Place Order** button. 6. In the Rapyd Payment page, click the **Click to Pay** button. ![648090f8b7b14.png](image/16763ca5dd85df.png) 7. In the Rapyd bank payment simulation page, click on the **Success** button, and then on the **Pay** button. ![648090fa575fe.png](image/16763ca5de552e.png) An order confirmation message appears. ![648090fc1553b.png](image/16763ca5df3b93.png) 8. Go to the **Sell > Orders** section of the PrestaShop dashboard and verify that the payment you have made is displayed with the correct status. ![648090fda3dab.png](image/16763ca5e099ea.png) After you have finished testing the module, you can switch to production mode. ### Note To fully activate your account for production mode you’ll need to complete the KYB form for compliance review in the Rapyd Client Portal. [###### Step 6: Configure the Module for Production](#idp421589_body) ### Note The Client Portal must be in production mode. 1. In the PrestaShop dashboard, go to **Improve > Modules > Module Manager**. 2. Scroll down to the Payments section and click on the **Configure** button of Rapyd Payments. The Rapyd Payments Settings page appears with the sandbox settings: ![648090f2163d0.png](image/16763ca5dadc0e.png) 3. Click on the **No** button of the **Enable test mode** setting to disable the test mode. 4. Enter your Rapyd Access Key and Secret Key for the production environment in the **Access key** and **Secret key** fields. Note that you should use the unique production keys for the PrestaShop module. ![64809100acfcc.png](image/16763ca5e13ba8.png) 5. Click the **Save** button. [###### Step 7: Set Up a Landing Page URL (Optional)](#idp421618_body) After the checkout process completes, the customer can be forwarded to a landing page. This may be the main URL of the ecommerce site or any other landing page that you may want to define. To set the landing page URL: 1. Sign in to the Client Portal and navigate to **Settings > Branding**. ![648090a7f0443.png](image/16763ca5b83cc4.png) 2. Click on the link icon and enter the URL of the landing page in the Fallback URL field. ![648090aa75383.png](image/16763ca5b8cef6.png) 3. Click **Save**. ### Note For more information on customizing your checkout page, see [Hosted Checkout Page Integration](hosted-checkout-page-integration.html "Hosted Checkout Page Integration") In this section: Search results -------------- No results found * [Prev](rapyd-payments-app-for-ecwid.html#idp421414) * [Next](rapyd-payments-plugin-for-prestashop.html#idp421446) --- # Card Numbers for Testing [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Developer Resources](developer-resources.html) * [Resources for Testing in the Sandbox](resources-for-testing-in-the-sandbox.html) * [Testing for Payment API](testing-for-payment-api.html) * Card Numbers for Testing * [Prev](error-simulation.html) * [Next](simulating-3ds-authentication---hosted-page.html) ###### Card Numbers for Testing When you make test API calls for card payments, you can use test card numbers. Numbers for Successful Transactions You can use any card number that you find in the examples for the API methods, including the following card numbers: * **4111111111111111** * **4462030000000000** You can use any card expiration date in the future, and any 3 digits for the CVV. ###### Numbers for Error Transactions ### Note In the sandbox, these numbers are valid for all card payment methods in payments created by [Create Payment](create-payment.html "Create Payment") and hosted checkout pages. Use the following card numbers in the sandbox to simulate rejection of a card payment: | Card Number | Type of Rejection | | --- | --- | | **4111111111111105** | Do Not Honor. | | **4111111111111143** | Stolen Card, pick up. | | **4111111111111151** | Insufficient Funds. | **Do Not Honor error** { "status": { "error\_code": "ERROR\_PROCESSING\_CARD - \[05\]", "status": "ERROR", "message": "Do Not Honor", "response\_code": "ERROR\_PROCESSING\_CARD - \[05\]", "operation\_id": "43c320f4-5f4a-4f89-a874-8da5df13ac82" } } **Stolen Card error** { "status": { "error\_code": "ERROR\_PROCESSING\_CARD - \[43\]", "status": "ERROR", "message": "Stolen Card, pick up", "response\_code": "ERROR\_PROCESSING\_CARD - \[43\]", "operation\_id": "6c0830fd-415d-4775-9410-afefd51773c3" } } **Insufficient Funds error** { "status": { "error\_code": "ERROR\_PROCESSING\_CARD - \[51\]", "status": "ERROR", "message": "Insufficient Funds", "response\_code": "ERROR\_PROCESSING\_CARD - \[51\]", "operation\_id": "563694e5-3454-474a-92b0-24ae720538b7" } } You can use any card expiration date in the future, and any 3 digits for the CVV. In this section: Search results -------------- No results found * [Prev](error-simulation.html) * [Next](simulating-3ds-authentication---hosted-page.html) --- # Create Subscription Item [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription Item](subscription-item.html) * Create Subscription Item * [Prev](subscription-item.html) * [Next](update-subscription-item.html) ###### Create Subscription Item Create a subscription item and add it to an existing subscription for recurring payment. To add a non-recurring charge to a subscription invoice, see [Create Invoice](create-invoice.html "Create Invoice") . This method triggers the **Customer Subscription Item Created** webhook. This webhook contains the same information as the response. [###### Parameters](#idp307366_body) [###### Request Header Parameters](#idp307368_body) [###### Request Body Parameters](#idp307428_body) [###### Response Parameters](#idp307478_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var requestObj = new { plan = "plan\_dad429f5e16c41499c9c23356a5e8dea", subscription = "sub\_0de9c79c1e2beee09499dc8220493d59", metadata = new { merchant\_defined = true }, quantity = 1 }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/subscription\_items", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { plan: 'plan\_dad429f5e16c41499c9c23356a5e8dea', subscription: 'sub\_0de9c79c1e2beee09499dc8220493d59', metadata: { merchant\_defined: true }, quantity: 1 }; const result = await makeRequest('POST', '/v1/subscription\_items', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $subscription\_items = \[\ "plan" => "plan\_dad429f5e16c41499c9c23356a5e8dea",\ "subscription" => "sub\_0de9c79c1e2beee09499dc8220493d59",\ "metadata" => array(\ "merchant\_defined" => true\ ),\ "quantity" => 1\ \]; $object = make\_request('post', '/v1/subscription\_items', $subscription\_items); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request subscription\_item = { "plan": "plan\_dad429f5e16c41499c9c23356a5e8dea", "subscription": "sub\_0de9c79c1e2beee09499dc8220493d59", "metadata": { "merchant\_defined": True }, "quantity": 1 } result = make\_request(method='post', path='/v1/subscription\_items', body=subscription\_item) pprint(result) * /v1/subscription\_items * Create Subscription Item * curl -X post https://sandboxapi.rapyd.net/v1/subscription\_items -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "plan": "plan\_dad429f5e16c41499c9c23356a5e8dea", "subscription": "sub\_0de9c79c1e2beee09499dc8220493d59", "metadata": { "merchant\_defined": true }, "quantity": 1 } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "710f52ac-5418-40ea-8e85-a2259bd288bb" }, "data": { "id": "subi\_e5dbbf84c68e5bb7db761625158d4262", "created": 1560329454, "metadata": null, "quantity": 1, "subscription\_id": "sub\_0de9c79c1e2beee09499dc8220493d59", "plan": { "id": "plan\_dad429f5e16c41499c9c23356a5e8dea", "aggregate\_usage": "sum", "amount": 0, "billing\_scheme": "per\_unit", "created\_at": 1559803170, "currency": "USD", "interval": "month", "interval\_count": 1, "metadata": {}, "product": "product\_97f34708270f13d95d9c505eb785e3c5", "nickname": "", "tiers": \[\], "tiers\_mode": "", "transform\_usage": { "divide\_by": 0, "round": "" }, "trial\_period\_days": 0, "usage\_type": "metered" } } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](subscription-item.html) * [Next](update-subscription-item.html) --- # Subscription Errors [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription](subscription-364807.html) * Subscription Errors * [Prev](delete-discount-from-subscription.html) * [Next](subscription---hosted-page.html) ###### Subscription Errors | Error Code | Description | | --- | --- | | ERROR\_CANCEL\_SUBSCRIPTION | The request tried to cancel a subscription, but the subscription was not found. The request was rejected. Corrective action: Determine whether the subscription was previously canceled, and check all input parameters. | | ERROR\_CANCELED\_SUBSCRIPTION | The request tried to update a subscription, but the subscription was canceled. The request was rejected. Corrective action: None. Determine why an attempt was made to update a canceled subscription. | | ERROR\_DAYS\_UNTIL\_DUE\_BILLING\_INCORRECT | The request tried to create or update a subscription, but the 'days\_until\_due' body parameter was set and 'billing' was not set to 'send\_invoice'. The request was rejected. Corrective action: Set 'billing' to 'send\_invoice'. | | ERROR\_DEFINING\_SUBSCRIPTION\_TRIAL\_PERIOD | The request tried to define a trial period for a subscription, but the trial period was already defined in the plan. The request was rejected. Corrective action: Set 'trial\_from\_plan' to false and define either 'trial\_end' or 'trial\_period\_days'. | | ERROR\_DELETE\_SUBSCRIPTION\_DISCOUNT | The request tried to delete a discount from a subscription, but the operation failed. Corrective action: Determine whether the discount was already deleted, and why there were multiple requests to delete it. | | ERROR\_DELETE\_SUBSCRIPTION\_ITEM | The request tried to delete a subscription item from a subscription, but the operation failed. Corrective action: Determine whether the subscription item was already deleted, and why there were multiple requests to delete it. | | ERROR\_GET\_PLANS | The request tried to create a subscription, but the plan was not found. The request was rejected. Corrective action: In each object in the ‘subscription\_items’ array, set 'plan' to the ID of a valid plan. | | ERROR\_GET\_SUBSCRIPTION | The request attempted an operation that requires a subscription, but the subscription was not found. The request was rejected. Corrective action: Use the ID of an active subscription. | | ERROR\_GET\_SUBSCRIPTION\_LIST | The request tried to retrieve a list of subscriptions, but there was an error in the query syntax. The request was rejected. Corrective action: Use the correct names of all query parameters. | | ERROR\_HOSTED\_PAGE\_TRIAL\_FROM\_PLAN\_WAS\_DEFINED\_WITHOUT\_PLAN\_PERIOD\_DAYS | The request tried to define trial\_from\_plan for a subscription, but the trial period was not defined in the plan. The request was rejected. Corrective action: Either set 'trial\_from\_plan' to false or define 'trial\_period\_days' to a valid number in the plan creation. | | ERROR\_INVALID\_TAX\_PERCENT\_INPUT | The request tried to create or update a subscription, but the 'days\_until\_due' body parameter was set and 'billing' was not set to 'send\_invoice'. The request was rejected. Corrective action: Set 'billing' to 'send\_invoice'. | | ERROR\_PAYMENT\_METHOD\_DOES\_NOT\_SUPPORT\_SUBSCRIPTIONS | The request attempted an action that requires a payment method that supports subscriptions. The payment method selected does not support this action. The request was rejected. Corrective action: For 'payment\_method', use a payment method that supports subscriptions. | | ERROR\_PAYMENT\_METHOD\_TYPE\_CURRENCY\_DOES\_NOT\_MATCH\_PLAN | The request tried to set a payment method for a subscription, but the payment method does not support the currency in the plan for a subscription item. The request was rejected. Corrective action: Choose a payment method that supports the currency of the subscription item. | | ERROR\_PLAN\_INTERVAL\_DOES\_NOT\_MATCH | The request tried to add a subscription item based on a plan, but the billing interval for the plan did not match the interval of all the subscription items in the subscription. The request was rejected. Corrective action: Add only plans that have the same 'interval' and 'interval\_count' as the subscription items in the subscription. | | ERROR\_SET\_TRIAL\_TO\_UNPAID\_SUBSCRIPTION | The request tried to add a free trial to an existing subscription, but full payment was not received for the previous billing period. The request was rejected. Corrective action: Add the free trial after the previous billing period is fully paid. | | ERROR\_SUBSCRIPTION\_BILLING\_CYCLE\_ANCHOR\_IN\_FUTURE | The request tried to create a subscription, but the billing cycle anchor was set too far in the future. The request was rejected. Corrective action: To create a subscription, set the 'billing\_cycle\_anchor' body parameter to a Unix timestamp within the current billing cycle or the first cycle after the free trial period. | | ERROR\_SUBSCRIPTION\_BILLING\_CYCLE\_ANCHOR\_INCORRECT | The request tried to create or update a subscription, but the billing cycle anchor was not recognized. The request was rejected. Corrective action: To create a subscription, set the 'billing\_cycle\_anchor' body parameter to a Unix timestamp. To update a subscription, set 'billing\_cycle\_anchor' to 'now' or 'unchanged'. | | ERROR\_SUBSCRIPTION\_BILLING\_CYCLE\_ANCHOR\_NOT\_UPDATED | The request tried to update a free trial period for a subscription, but the billing cycle anchor was not updated correctly. The request was rejected. Corrective action: Leave 'billing\_cycle\_anchor' blank, which resets it to the end of the new trial period. | | ERROR\_SUBSCRIPTION\_BILLING\_CYCLE\_ANCHOR\_NOT\_VALID | The request tried to create or update a subscription, but the date of the billing cycle anchor was set during the free trial period. The request was rejected. Corrective action: Set 'billing\_cycle\_anchor' with the same Unix timestamp as 'trial\_end', or any time later than that. | | ERROR\_SUBSCRIPTION\_BILLING\_CYCLE\_ANCHOR\_WITHIN\_TRIAL | The request tried to create a subscription, but the date of the billing cycle anchor was set during the free trial period. The request was rejected. Corrective action: Set 'billing\_cycle\_anchor' with the same Unix timestamp as 'trial\_end', or any time later than that. | | ERROR\_SUBSCRIPTION\_BILLING\_INCORRECT | The request attempted an operation that requires the 'billing' body parameter, but it was not set to a valid value. The request was rejected. Corrective action: Set 'billing' to 'pay\_automatically'. | | ERROR\_SUBSCRIPTION\_COUPON\_CURRENCY | The request tried to add a coupon to a subscription, but the currency in the coupon did not match the currency of the plans in the subscription items. The request was rejected. Corrective action: Add a coupon that has the same currency as the plans in the subscription items. | | ERROR\_SUBSCRIPTION\_DUPLICATE\_PLANS | The request attempted an operation on a subscription that would result in duplicate plans. The request was rejected. Corrective action: In the 'subscription\_items' array, ensure that each plan ID is used one time, and set 'quantity' as required. | | ERROR\_SUBSCRIPTION\_NOT\_FOUND | The request attempted an operation that requires a subscription ID, but the value was missing or was not recognized. The request was rejected. Corrective action: Provide a valid subscription ID. | | ERROR\_SUBSCRIPTION\_TRIAL\_END\_AND\_TRIAL\_PERIOD\_SET | The request tried to create or update a subscription, but both 'trial\_end' and 'trial\_period\_days' were set. The request was rejected. Corrective action: Set 'trial\_end' or 'trial\_period\_days', but not both. | | ERROR\_SUBSCRIPTION\_TRIAL\_END\_NOT\_VALID | The request tried to create or update a subscription, but the value of the 'trial\_end' body parameter was not recognized. The request was rejected. Corrective action: Use a valid Unix timestamp for the 'trial\_end' parameter. The maximum trial period length is 2 years. If there is no free trial, do not set this parameter. | | ERROR\_SUBSCRIPTION\_TRIAL\_PERIOD\_ALREADY\_DEFINED | The request tried to define a trial period for a subscription, but the trial period was already defined in the plan. The request was rejected. Corrective action: Set 'trial\_from\_plan' to false and define either 'trial\_end' or 'trial\_period\_days'. | | ERROR\_SUBSCRIPTION\_TRIAL\_PERIOD\_DAYS\_NOT\_VALID | The request tried to create or update a subscription, but the value of the 'trial\_period\_days' body parameter was not recognized. The request was rejected. Corrective action: Set 'trial\_period\_days' to an integer between 1 and 710. If there is no free trial, do not set this parameter. | | ERROR\_SUBSCRIPTION\_TRIAL\_PERIOD\_NOT\_VALID | The request tried to update the trial period of a subscription, but the end of the new trial period is before the current date. The request was rejected. Corrective action: Set 'trial\_period\_days' such that the last day of the trial period is after the current day. | | ERROR\_TAX\_PERCENTAGE\_NOT\_VALID | The request attempted an operation that requires a tax percentage, but the value was not valid. The request was rejected. Corrective action: Set 'tax\_percent' to zero or a positive decimal number. | | ERROR\_TRIAL\_END\_TRIAL\_FROM\_PLAN\_TOGETHER | The request tried to create or update a subscription, but the 'trial\_end' and 'trial\_from\_plan' body parameters were both set. The request was rejected. Corrective action: To set a trial period, set 'trial\_end' or 'trial\_from\_plan', but not both. | | ERROR\_TRIAL\_PERIOD\_DAYS\_MISMATCH | The request tried to add or update the list of subscription items in a subscription, but the plans in the subscription items did not all have the same value for 'trial\_period\_days'. The request was rejected. Corrective action: Update the plans so that they all have the same value for 'trial\_period\_days', or set 'trial\_from\_plan' in the subscription to 'false'. | | ERROR\_UPDATE\_SUBSCRIPTION\_CUSTOMER\_MISMATCH | The request tried to update a subscription with a new payment method, but the payment method does not belong to the customer. The request was rejected. Corrective action: For 'payment\_method', use the ID of a payment method belonging to the customer specified for the subscription. | | ERROR\_UPDATE\_SUBSCRIPTION\_PAYMENT\_PENDING | The request tried to add a new payment method to a subscription, but the last payment on the subscription is still pending. The request was rejected. Corrective action: Complete or cancel the earlier payment, then resubmit the request. | | ERROR\_UPDATE\_SUBSCRIPTION\_STATUS\_NOT\_UPDATABLE | The request tried to update a free trial period for a subscription, but the subscription status was not 'active' or 'trialing'. The request was rejected. Corrective action: Create a new subscription with a new trial period. | | INVALID\_BILLING | The request tried to create a subscription or invoice, but the value of the 'billing' body parameter was not recognized. The request was rejected. Corrective action: Set 'billing' to 'pay\_automatically'. | | INVALID\_STATUS | The request tried to retrieve a list of subscriptions, but the 'status' query parameter was not recognized. The request was rejected. Corrective action: Set 'status' to one of the following values: 'trialing', 'active', 'past\_due', 'unpaid', 'canceled', 'all' | | INVALID\_SUBSCRIPTION\_ID | The request tried to process a subscription or subscription item, but the subscription was not found. The request was rejected. Corrective action: Use the ID of a valid subscription. | | INVALID\_SUBSCRIPTION\_ITEM\_QUANTITY | The request tried to create a subscription or a usage record, but the quantity for a subscription item was not valid or 'usage\_type' in the relevant plan was set to 'metered'. The request was rejected. Corrective action: Use a positive integer for 'quantity' or create a new subscription item with a plan that has 'usage\_type' set to 'metered'. | | INVALID\_SUBSCRIPTION\_ITEMS | The request tried to create or update a subscription, but the subscription items could not be identified. The request was rejected. Corrective action: Set the 'subscription\_items' body parameter to be an object or an array of not more than 20 objects. | In this section: Search results -------------- No results found * [Prev](delete-discount-from-subscription.html) * [Next](subscription---hosted-page.html) --- # Rapyd Payments Plugin for OpenCart [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Plugins](plugins.html) * [Plugins and Add-Ons](plugins-and-add-ons.html) * Rapyd Payments Plugin for OpenCart * [Prev](rapyd-payments-plugin-for-prestashop.html#idp421618) * [Next](rapyd-payments-plugin-for-opencart.html#idp421649) #### Rapyd Payments Plugin for OpenCart Accept cross-border payments from your OpenCart store. Offering more payment methods drives increased conversions and customer loyalty. Rapyd offers this plugin for over 50 countries. Download it now from the [OpenCart Extensions Marketplace](https://www.opencart.com/index.php?route=marketplace/extension&filter_search=rapyd) or from your OpenCart control panel. For detailed information, read the full instructions on this page. ### Rapyd Account Connection Limit You can only connect one store per Rapyd Account. You must be domiciled in one of the following countries in order to accept payments. [##### Supported Countries](#idp421649_body) Andorra, Australia, Austria, Belgium, Bosnia and Herzegovina, Brazil, Bulgaria, Canada, Chile, Colombia, Croatia, Cyprus, Czech Republic, Denmark, Dominican Republic, El Salvador, Estonia, Finland, France, Georgia, Germany, Gibraltar, Greece, Greenland, Hong Kong, Hungary, Iceland, India, Indonesia, Ireland, Israel, Italy, Japan, Latvia, Liechtenstein, Lithuania, Luxembourg, Macedonia, Malaysia, Malta, Mexico, Moldova, Monaco, Montenegro, Netherlands, New Zealand, Norway, Peru, Philippines, Poland, Portugal, Romania, San Marino, Singapore, Slovak Republic (Slovakia), Slovenia, South Africa, South Korea, Spain, Sweden, Switzerland, Taiwan, Thailand, Turkey, United Kingdom, United States of America (USA), Vatican, Vietnam, Virgin Islands (US) ##### How to Activate OpenCart [###### Step 1: Get Started with Rapyd Payments](#idp421654_body) [Sign up](https://support.rapyd.net) * Activate and set up your plugin. * Access sandbox mode and test payments. * View supported payment methods. * View payment reports. * Invite team members. * Complete KYB steps to fully activate your account. [###### Step 2: Activate the Module from the Rapyd Client Portal](#idp421671_body) 1. Sign in to Client Portal and navigate to **Plugins**. Select **OpenCart**. 2. In the **OpenCart** window, click the **Active** toggle button. ![648091039674b.gif](image/16763ca5e1e16a.gif) [###### Step 3: Add the App from the OpenCart Marketplace](#idp421685_body) 1. Navigate to the OpenCart marketplace by clicking on this direct [link](https://www.opencart.com/index.php?route=marketplace/extension) . 2. Enter ‘Rapyd’ in the **Search** field. ![648091105047d.png](image/16763ca5e28675.png) The **Rapyd Payments** plugin appears in the results. ![648091118b159.png](image/16763ca5e327e6.png) 3. Click on the **Rapyd** plugin, and then click on the **Download** button. ![648091134131e.png](image/16763ca5e3b854.png) [###### Step 4: Configure the Sandbox Mode](#idp421709_body) ### Note The Client Portal must be in sandbox mode during this testing phase. See [Developers](developers.html "Developers") . There are four Rapyd payment types: Rapyd Bank, Rapyd Card, Rapyd Cash, and Rapyd eWallet. You should do the following procedure for each payment type that you want to add to your OpenCart site. 1. In the OpenCart control panel, go to **Extensions > Extensions**, and select ‘Payments’ as the extension type. ![64809114afb94.png](image/16763ca5e45005.png) 2. Scroll down to the Rapyd Payments extensions. ![648091160ca48.png](image/16763ca5e4e6a8.png) Click on the **+** icon next to the type of Rapyd payment you want to enable. The **Rapyd Payments General** tab appears: ![6480911747dd5.png](image/16763ca5e57934.png) 3. Select **Yes** in the **Enable test** mode field. 4. Enter your Rapyd **Access Key** and **Secret Key** for the sandbox environment in the **Test Access key** and **Test Secret key** fields. Note that you should use the unique sandbox keys for the OpenCart plugin. See also [Plugins and Add-Ons](plugins-and-add-ons.html "Plugins and Add-Ons") . 5. In the **Status** field, select **Enabled**. 6. In the **Sort Order** field enter an integer between 1 and 4 where 1 is the payment type that appears on the top of the list on your site’s checkout screen. 7. Optionally, set up the order status for the payment type that you are using via the **Order Status** tab. ![6480912ab19cf.png](image/16763ca5e6256d.png) [###### Step 5: Test the Plugin](#idp421757_body) 1. Go to your OpenCart ecommerce site as a customer and add an item to the cart. ![6480911a1b288.png](image/16763ca5e6ad83.png) 2. Click on the **Checkout** button. ![6480911b86a93.png](image/16763ca5e73d7c.png) 3. Select **Guest Checkout** and click the **Continue** button. ![6480911cbef42.png](image/16763ca5e7e1f0.png) 4. Enter the billing and delivery details, and click the **Continue** button. ![6480911e55095.png](image/16763ca5e8808e.png) 5. Select a delivery method, and then select **Card** as the **Rapyd Payments** method. Agree to the terms and conditions, and click the **Continue** button. ![6480911fdfe4c.png](image/16763ca5e92c2c.png) 6. For testing purposes, enter the following values for a Mastercard card payment: * Card: Mastercard * Card number: 4111 1111 1111 1111 * Expiration Date: 12/23 * CVV Code: 123 * Cardholder Name: John Doe ![648091217ca87.png](image/16763ca5e9c53f.png) 7. Click on the **Click to Pay** button. A confirmation message appears. ![6480912323e45.png](image/16763ca5ea5fcf.png) 8. Go to the **Sales > Orders** section of the OpenCart Admin panel, and verify that the payment you have made is displayed with the correct status. ![64809124b43f2.png](image/16763ca5eaf03f.png) After you have finished testing the module, you can switch to production mode. [###### Step 6: Configure the Module for Production](#idp421821_body) ### Note The Client Portal must be in production mode. There are four Rapyd payment types: Rapyd Bank, Rapyd Card, Rapyd Cash, and Rapyd eWallet. You should do the following procedure for each payment type that you want to set for production. 1. In the OpenCart control panel, go to **Extensions > Extensions**, and select ‘Payments’ as the extension type. ![64809114afb94.png](image/16763ca5e45005.png) 2. Scroll down to the Rapyd Payments extensions. ![648091160ca48.png](image/16763ca5e4e6a8.png) ### Note Click on the **+** icon next to the type of Rapyd payment you want to enable. The **Rapyd Payments General** tab appears: ![64809128ef5c6.png](image/16763ca5eb9e5e.png) 3. Select **No** in the **Enable test mode** field. 4. Enter your Rapyd **Access Key** and **Secret Key** for the production environment in the **Access key** and **Secret key** fields. Note that you should use the unique production keys for the OpenCart plugin. See also [Plugins and Add-Ons](plugins-and-add-ons.html "Plugins and Add-Ons") . 5. In the **Status** field, select **Enabled**. 6. In the **Sort Order** field enter an integer between 1 and 4 where 1 is the payment type that appears on the top of the list on your site’s checkout screen. 7. Optionally, set up the order status for the payment type that you are using via the **Order Status** tab. ![6480912ab19cf.png](image/16763ca5e6256d.png) [###### Step 7: Set a Landing Page URL (Optional)](#idp421869_body) After the checkout process completes, the customer can be forwarded to a landing page. This may be the main URL of the ecommerce site or any other landing page that you may want to define. To set the landing page URL: 1. Sign in to the Client Portal and navigate to **Settings > Branding**. ![648090a7f0443.png](image/16763ca5b83cc4.png) 2. Click on the link icon and enter the URL of the landing page in the Fallback URL field. ![648090aa75383.png](image/16763ca5b8cef6.png) 3. Click **Save**. For more information on customizing your checkout page, see [Hosted Checkout Page Integration Steps](hosted-checkout-page-integration.html "Hosted Checkout Page Integration") . In this section: Search results -------------- No results found * [Prev](rapyd-payments-plugin-for-prestashop.html#idp421618) * [Next](rapyd-payments-plugin-for-opencart.html#idp421649) --- # Hosted Subscription Checkout Page [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Collect](rapyd-collect.html) * [Billing](billing.html) * Hosted Subscription Checkout Page * [Prev](subscriptions.html#idp222385) * [Next](hosted-subscription-checkout-page.html#idp222953) ##### Hosted Subscription Checkout Page A secured page to accept your subscriptions payments. Subscriptions are recurring transactions based on predefined billing cycles. Subscriptions work well for businesses that offer a service that can be renewed on a regular basis. The Hosted Subscriptions Checkout Page enables you to collect recurring payments for products through the Fixed Price Plan. This hosted solution can allow you to effectively manage subscriptions for your organization, and more easily collect payments from customers by directing them to the Hosted Subscriptions Checkout Page. Common use cases may include: * Accepting recurring payments from your customers without having to handle their credit card information. * Offering a subscriptions solution to other businesses or merchants without a [PCI-DSS](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_dss "Payment Card Industry Data Security Standard") certification. * A no-code solution to generate a subscriptions page via the Client Portal. [###### Hosted Subscriptions Page Example](#idp222953_body) 1. Enter your payment information. 2. Enter your address and billing address. 3. Click **Subscribe**. ![648083a011d45.png](image/16763ca3320e20.png) 4. Complete 3DS Verification. ![648083a2efec3.png](image/16763ca332acd8.png) 5. Redirect to the **subscription success** page. 6. Click **Finish**. ### Supported Payment Methods The following payment methods are supported for the Hosted Subscription Checkout Page: * Cards * Bank Redirect [###### Create A Subscription Page Workflow](#idp222985_body) ###### Step 1: Create a Product for Your Subscription ![643e7dcc20aad.jpg](image/16763ca33361d5.jpg) 1. Decide the product to use for your subscription. 2. Use [Create Product](create-product.html "Create Product") to generate the product that will be used in the description. See [Subscriptions - Create a Product](subscriptions.html "Subscriptions") for more detail about parameters. **Note**: A product used in pricing plans must have their `type` set to **service**. 3. Rapyd generates a product ID. 4. Rapyd sends a webhook response. ###### Step 2: Create a Plan for Your Subscription ![643e7dcdcb593.png](image/16763ca333f635.jpg) 1. You decide the pricing settings for your pricing plan. 2. Use [Create Plan](create-plan.html "Create Plan") to generate your plan. See [Subscriptions - Create a Plan](subscriptions.html "Subscriptions") for more details about parameters. 3. Rapyd generates a plan ID. 4. Rapyd sends a webhook reponse. **Note**: The Hosted Subscription page can only be generated with the Fixed Price Plan. ###### Step 3: Create a Customer for Your Subscription. ![643e7dcf9f8b3.png](image/16763ca3348581.jpg) 1. Use [Create Customer](create-customer.html "Create Customer") to generate a customer through the API for your subscription. 2. You ask Rapyd to generate a customer ID. See [Subscriptions - Create a Customer Profile](subscriptions.html "Subscriptions") for more details about parameters. 3. Rapyd generates a unique customer ID. **Note**: See Create Subscription by Hosted Page for more information on how to generate a Hosted Subscription Checkout page without Customer ID. ###### Step 4: Generate a Hosted Checkout Page for Subscriptions ![643e7dd1aceb0.png](image/16763ca335328f.jpg) 1. You request Rapyd to generate a Hosted Subscription Checkout Page. 2. Rapyd processes your request and sends the response with the redirect URL. 3. You display the redirect URL to the customer. 4. The customer completes the payment on the hosted page. [###### Hosted Subscriptions Page Message Sequences](#idp223055_body) The message sequence diagrams below describe how information is exchanged between Rapyd, the merchant, the merchant's customers, and the card network. Create Hosted Subscription Page ![subscription-hosted-card-payment-with-automatic-capture.svg](image/16763ca335d0ca.svg) [###### How the Hosted Subscriptions Page Works](#idp223062_body) Subscription payment information is collected by Rapyd through a generated hosted page. If a customer does not have a card on file, you can direct them to the Hosted Subscriptions Checkout page to collect their payment information for the subscription. In addition, you can generate multiple hosted pages and send them to different customers. You can customize the look and feel of your page to match your brand and website experience as described in [Customizing Your Hosted Page](customizing-your-hosted-page.html "Customizing Your Hosted Page") You need to complete the following steps in order to generate a Hosted Subscriptions Checkout Page: 1. [Create a Product](subscriptions.html "Subscriptions") (API integration) 2. [Create a Plan](subscriptions.html "Subscriptions") (Create a pricing plan for the product through API integration) 3. [Create a Customer](subscriptions.html "Subscriptions") (API Integration or via the Client Portal) 4. Generate a Hosted Checkout Page for Subscriptions (API Integration or via the Client Portal) [###### Hosted Subscriptions Page Request Parameters](#idp223080_body) The Create Subscription by Hosted Page describes the parameters in the request in greater detail. | | | | | | --- | --- | --- | --- | | Body Parameter | Required | Description | Relates To | | subscription\_items | yes | Array of subscription items. Each item contains a plan (required) and a quantity (optional).

* Default Quantity is 1

* Quantity is relevant for licensed usage\_type | Subscription Object | | customer | yes | ID of the customer who pays for this subscription. String starting with **cus\_** | | | billing | yes | Determines the method of billing. Set to **pay\_automatically** | | [###### Generate Hosted Subscription Page Request](#idp223131_body) * * Request * // Request URL: GET https://sandboxapi.rapyd.net/v1/checkout/subscription // Message body: { "subscription\_items": \[\ \ {\ "plan": "plan\_9d7bc847f1ad3fe36f389273f5e22b56",\ "quantity": 1\ }\ \ \], "country": "US", "language": "EN", "customer": "cus\_49ea9673acfbe53fac114fbf4bd94be3", "coupon": "coupon\_da009d56dd6b7fdf4de28af673430a63", "billing": "pay\_automatically", "tax\_percent": 3, "trial\_period\_days": 7, "metadata": \[{\ \ "my\_meta\_data\_key": "metadata\_value"\ \ }\] } ### Main Button Text The `merchant_main_button` parameter in the request allows you to define the text for the main button for the Hosted Subscription page. This is for subscriptions that do not have trials. The options for the button text are: * Subscribe * Purchase * Pay When a subscription with a trial is used for the Hosted Subscription page, the default option of **Start trial** is used. [###### Generate Hosted Subscriptions Page Response](#idp223155_body) Create Subscription by Hosted Page describes the fields in the response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "9e7ede34-9c44-494f-b833-c1734afee646" }, "data": { "id": "hp\_sub\_f477f7b37e66ffef1b4be5becfccea46", "status": "NEW", "cancel\_url": "https://www.rapyd.net", "complete\_url": "https://www.rapyd.net", "language": "en", "merchant\_color": "", "merchant\_logo": "", "merchant\_website": "https://www.rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "rap", "merchant\_terms": "", "merchant\_privacy\_policy": "", "page\_expiration": 1701594560, "redirect\_url": "https://sandboxcheckout.rapyd.net/subscription?token=hp\_sub\_f477f7b37e66ffef1b4be5becfccea46", "merchant\_main\_button": "start\_trial", "subscription\_items": \[\ \ {\ \ "id": "",\ "plan": {\ \ "id": "09de6170-d76b-4450-8dcb-7833f5706384",\ "tiers": \[\],\ "token": "plan\_9d7bc847f1ad3fe36f389273f5e22b56",\ "amount": 100,\ "product": null,\ "interval": "day",\ \ "metadata": {\ \ "merchant\_defined": true\ \ },\ \ "nickname": "hcp",\ "created\_at": 1700384490,\ "deleted\_at": 0,\ "tiers\_mode": "",\ "usage\_type": "licensed",\ "product\_name": "HCP",\ "product\_type": "service",\ "currency\_code": "USD",\ "product\_token": "product\_eb45c8152bede037911d5e99ee4bc116",\ "billing\_scheme": "per\_unit",\ "interval\_count": 20,\ "aggregate\_usage": "sum",\ "organization\_id": "",\ "transform\_usage": {},\ "product\_is\_active": 1,\ "trial\_period\_days": 0,\ "transform\_usage\_round": "up",\ "transform\_usage\_divide\_by": 1\ \ },\ \ "token": "",\ "created": 0,\ "deleted": false,\ "prorate": true,\ "quantity": 1,\ "plan\_token": "plan\_9d7bc847f1ad3fe36f389273f5e22b56",\ "clear\_usage": false,\ "proration\_date": 0\ \ }\ \ \], "customer": "cus\_49ea9673acfbe53fac114fbf4bd94be3", "customer\_payment\_methods": \[\], "bank\_redirect\_customer\_payment\_methods": \[\], "country": "US", "trial\_from\_plan": false, "trial\_period\_days": 7, "tax\_percent": 3, "billing\_cycle\_anchor": 0, "billing": "pay\_automatically", "cancel\_checkout\_url": "https://www.rapyd.net", "complete\_checkout\_url": "https://www.rapyd.net", "payment": { "amount": null, "original\_amount": 0, "is\_partial": false, "currency\_code": "", "country\_code": "", "status": "", "description": "", "merchant\_reference\_id": "", "customer\_token": "", "payment\_method": "", "payment\_method\_data": {}, "expiration": 0, "captured": false, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "complete\_payment\_url": "", "error\_payment\_url": "", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "", "transaction\_id": "", "metadata": null, "failure\_code": "", "failure\_message": "", "paid": false, "paid\_at": 0, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": null, "ewallets": \[\], "payment\_method\_options": {}, "payment\_method\_type": "", "payment\_method\_type\_category": "", "fx\_rate": "", "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "", "mid": "", "next\_action": "not\_applicable" }, "metadata": \[\ \ {\ \ "my\_meta\_data\_key": "metadata\_value"\ \ }\ \ \], "custom\_elements": { "save\_card\_default": false, "display\_description": false, "payment\_fees\_display": true, "merchant\_currency\_only": false, "billing\_address\_collect": false, "dynamic\_currency\_conversion": false }, "payment\_method\_type": "", "coupon": "coupon\_da009d56dd6b7fdf4de28af673430a63", } } The data for this section shows: * The id of the subscription is **sub\_f477f7b37e66ffef1b4be5becfccea46**. * The customer’s payment method will be charged every 20 days for the units they use for the subscription service. * The coupon ID is **coupon\_da009d56dd6b7fdf4de28af673430a63**. ### Hosted Subscription Page Coupon Support Coupons are supported for Hosted Subscription pages. Pass the ‘coupon’ parameter in the request of Create Subscription by Hosted Page with the coupon ID, starting with **coupon\_**. You can also add a coupon by passing the ‘coupon’ parameter in the request of Create Customer. You then pass the Customer ID when creating the Hosted Subscription Page. In this section: Regulations developed for the [payment card industry](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pci) for data security and protection against fraud. Search results -------------- No results found * [Prev](subscriptions.html#idp222385) * [Next](hosted-subscription-checkout-page.html#idp222953) --- # Listing Payments [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Collect](collect.html) * [Payments](payments.html) * Listing Payments * [Prev](two-step-payment-367016.html#idp253196) * [Next](listing-payments.html#idp253236) ##### Listing Payments You can view a list of all payment transactions. [###### How to View Your Payments](#idp253236_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Collect** > **Payments**. The **Payments** page appears. ![648089c31da72.png](image/16763ca4546c8c.png) 2. Modify the display by doing the following: * To add or remove columns, click the **Choose Columns** icon at the top right. The icon has three vertical bars. On the **Choose Columns** panel, select the columns you want to appear on screen and click **Apply** . * To change the column order, grab a column header and drag it to a new position. * To sort the list, hover over a column header. If the cursor turns into a pointing finger, click the header. An arrow indicates the sort direction. To change the direction, click the header again. 3. Other things you can do: * To filter the list, click the **Search** field at the top. Suggested filters appear. Select a filter and type a value, or type a free text string. Then click the magnifying glass icon. * To clear a filter, delete the text in the **Search** field and click the magnifying glass icon. * To apply an advanced filter, click the Filter icon at the top right. In the **Filter** window, select a field and a condition, and enter a value. To define an additional filter, click **\+ Add Filter** and fill in the field, condition, and value. Then click **Apply**. * To clear an advanced filter, close the filter description. * To clear all advanced filters, click **Clear All**. * To view additional columns, move the horizontal scroll bar at the bottom of the page. * To scroll through the lines of the table, move the vertical scroll bar at the right side of the page. [###### Description of Fields](#idp253284_body) The following table describes the fields in the **Payments** page. | Field | Description | | --- | --- | | Category | Category of payment method type used for the transaction:

* **bank\_redirect**

* **bank\_transfer**

* **cash**

* **card**

* **ewallet** | | Country | The country of the transaction. | | Created At | Date and time of creation of the payment. | | Currency | Three-letter ISO 4217 code for the currency used in the **Amount** field. | | Customer ID | ID of the customer who paid the money. String starting with **customer\_**. | | Expiration Date | End of the time allowed for customer to complete this payment.

Relevant to cash, bank redirect and bank transfer. | | Merchant Reference ID | Identifier for the transaction. Defined by the merchant. | | 3DS authenticated | The 3DS authentication status for the payment. For card payments only. | | Failure code | The provided reason why the payment failed. For card payments only. | | Metadata | A JSON object defined by the Rapyd partner. | | Paid Amount | The amount received by the recipient after the payment is completed, in units of the currency defined in **Currency**. | | Paid At | Date and time that the payment was completed. | | Payment ID | The payment ID, a string starting with **payment\_**. | | Payment Method | The name of the specific payment method type. For example: **us\_debit\_mastercard\_card**. | | Refunded | Indicates whether there was a refund against this payment. **True** or **False**. | | Refunded Amount | The total amount refunded against this payment, in units of the currency defined in **Currency** . | | Requested Amount | The requested amount, in units defined by **Currency**. Corresponds to the **original\_amount** field in the Payments API. | | Statement Descriptor | A text description suitable for the customer's statement. | | Status | Indicates the status of the payment. One of the following:

* **Active** - Active and awaiting completion.

* **Canceled** - The payment was canceled.

* **Closed** - The transaction is complete.

* **Error** - Error. An attempt was made to complete the payment, but it failed.

* **EXP** - The payment has expired. | | Network fraud indicator | Indicates if the payment has been reported as fraudulent by the Visa TC40 and Mastercard SafeFiles reports.

Possible values:

* Yes

* No | | Fraud Type | A text string that describes the type of fraud for the payment. | In this section: Search results -------------- No results found * [Prev](two-step-payment-367016.html#idp253196) * [Next](listing-payments.html#idp253236) --- # Update Subscription Item [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Subscription](subscription.html) * [Subscription Item](subscription-item.html) * Update Subscription Item * [Prev](create-subscription-item.html) * [Next](list-subscription-items.html) ###### Update Subscription Item Change or modify a subscription item. This method triggers the **Customer Subscription Item Updated** webhook. This webhook contains the same information as the response. [###### Parameters](#idp307579_body) [###### Request Path Parameters](#idp307581_body) * * subscription\_item * ID of the subscription item. String starting with **subi\_**. [###### Request Header Parameters](#idp307591_body) [###### Request Body Parameters](#idp307651_body) [###### Response Parameters](#idp307688_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string subscriptionItem = "subi\_e5dbbf84c68e5bb7db761625158d4262"; var requestObj = new { quantity = 2, metadata = new { merchant\_defined = true } }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", $"/v1/subscription\_items/{subscriptionItem}", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { quantity: 2 }; const result = await makeRequest( 'POST', '/v1/subscription\_items/subi\_e5dbbf84c68e5bb7db761625158d4262', body ); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $body = \[\ "metadata" => array(\ "merchant\_defined" => "updated"\ ),\ "quantity" => 2\ \]; $object = make\_request('post', '/v1/subscription\_items/subi\_e5dbbf84c68e5bb7db761625158d4262', $body); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request subscription\_item = { "metadata": { "merchant\_defined": 'updated' }, "quantity": 2 } result = make\_request(method='post', path='/v1/subscription\_items/subi\_e5dbbf84c68e5bb7db761625158d4262', body=subscription\_item) pprint(result) * /v1/subscription\_items/:subscription\_item * Update Subscription Item * curl -X post https://sandboxapi.rapyd.net/v1/subscription\_items/subi\_e5dbbf84c68e5bb7db761625158d4262 -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "metadata": { "merchant\_defined": "updated" }, "quantity": 2 } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "65056f31-505e-4a75-802a-aea3cdf8226d" }, "data": { "id": "subi\_e5dbbf84c68e5bb7db761625158d4262", "created": 1560329454, "metadata": { "merchant\_defined": "updated" }, "quantity": 2, "subscription\_id": "sub\_0de9c79c1e2beee09499dc8220493d59", "plan": { "id": "plan\_dad429f5e16c41499c9c23356a5e8dea", "aggregate\_usage": "sum", "amount": 0, "billing\_scheme": "per\_unit", "created\_at": 1559803170, "currency": "USD", "interval": "month", "interval\_count": 1, "metadata": {}, "product": "product\_97f34708270f13d95d9c505eb785e3c5", "nickname": "", "tiers": \[\], "tiers\_mode": "", "transform\_usage": { "divide\_by": 0, "round": "" }, "trial\_period\_days": 0, "usage\_type": "metered" } } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](create-subscription-item.html) * [Next](list-subscription-items.html) --- # Authorizing a Card Transaction Remotely [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Issuing](rapyd-issuing.html) * [Authorization](authorization.html) * Authorizing a Card Transaction Remotely * [Prev](setting-up-a-remote-authorization-server.html#idp246098) * [Next](authorizing-a-card-transaction-remotely.html#idp246187) ##### Authorizing a Card Transaction Remotely Process requests and authorize card transactions. | `Enterprise` Rapyd's clients can process card transaction authorizations on a remote server. This use case follows the course of a successful card transaction. For example, the customer has a card that was issued via the Rapyd issuing platform. The card is funded by the client's wallet. The customer uses the card at a bricks-and-mortar retail location to buy a luxury watch for 1,200.00 USD (U.S. Dollars). The card processor notifies Rapyd of the transaction. Rapyd sends an authorization request to the client's remote authorization server. The client notifies Rapyd that the transaction is authorized. Rapyd notifies the card processor that the transaction was approved. Rapyd notifies the card network that the transaction is authorized. When Rapyd receives notification that the transaction is completed successfully, Rapyd notifies the client. [###### Remote Authorization Workflow](#idp246187_body) Let’s look at the highlights of your workflow. ###### Step 1: Receiving the Transaction ![receiving-transaction.jpg](image/16763ca3bad733.jpg) 1. The card network notifies Rapyd of the transaction. 2. Rapyd sends a request for transaction authorization. 3. Your authorization server authorizes the transaction and sends a webhook to Rapyd with the status of the authorization. ###### Step 2: Processing the Transaction ![process-transaction.jpg](image/16763ca3bb6b2e.jpg) 1. Rapyd notifies the card network that the transaction is authorized. 2. The card network notifies Rapyd that the transaction is complete. 3. Rapyd charges the client wallet and notifies the client that the transaction is complete. [###### How Authorizing a Card Transaction Remotely Works](#idp246214_body) ### Prerequisites You must set up your own authorization server, as detailed in [Setting Up a Remote Authorization Server](setting-up-a-remote-authorization-server.html "Setting Up a Remote Authorization Server") . [###### Remote Authorization Request](#idp246220_body) Rapyd sends you an authorization request for the customer's purchase. * * Remote Authorization Request * { "amount": 1200, "authorization\_id": "cardauth\_874618744ffs3r452", "card\_id": "card\_874618744ffs3r452", "contact\_id": "cont\_874618744ffs3r452", "created\_at": 1352316334, "currency": "USD", "pos\_info": { "card\_holder\_presence": true, "identification\_code": "GYUI", "mcc": "5812", "name\_and\_location": "RITE AID 2244 CORNER ST. MEXICO CITY", "terminal\_id": "7865" }, "status": "PENDING", "type": "authorization" } You process the request and authorize the transaction. ### Supported Currencies for Authorized Transactions Some currencies are not supported for issued card transactions. If a card transaction uses an unsupported currency, then the authorization for that card transaction will be blocked. The merchant will be notified via webhook. The error code is the `decline_code` field with a value of **57**. See [Authorization Declined Webhook](authorization-declined-webhook.html "Authorization Declined Webhook") for more information. [###### Remote Authorization Response](#idp246239_body) You return a response to Rapyd in the required JSON format, indicating that the transaction is approved. * * Remote Authorization Response * { "authorization\_id": "cardauth\_874618744ffs3r452", "response\_code": "00", "auth\_code": "1A2B3C" } Rapyd transfers 1,200.00 USD (U.S. Dollars) from the client's wallet to the card network. The client transfers the same amount from the customer's personal wallet to the client's wallet. In this section: Search results -------------- No results found * [Prev](setting-up-a-remote-authorization-server.html#idp246098) * [Next](authorizing-a-card-transaction-remotely.html#idp246187) --- # Changing the Card Token Status [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Issuing](issuing.html) * Changing the Card Token Status * [Prev](viewing-a-list-of-card-tokens.html#idp261496) * [Next](changing-the-card-token-status.html#idp261607) #### Changing the Card Token Status You can view a list of all card tokens associated with your provisioned card. **Provisioning** refers to the process where an issued card is added to a digital wallet and tokenized. An issued card can have multiple tokens associated with the card. Token statuses can be managed through Client Portal. You can **activate**, **suspend**, or **deactivate** a card token. This allows you to manage the token lifecycle, and discard any tokens that are not useful. [##### How to View Card Token Details](#idp261607_body) 1. Sign in as described in [Signing in to the Client Portal](signing-in-to-the-client-portal.html "Signing In to the Client Portal") and navigate to **Issuing** > **Cards**. The **Cards** page appears. ![card-token-status-flow-1.png](image/16763ca50b3573.png) 2. Search by **Card ID** to find the provisioned card. 3. Select **Card ID** from the drop down next to the search bar. ![card-token-status-flow-2.png](image/16763ca50bce69.png) 4. Enter the Card ID in the search bar. 5. The entry for the provisioned card appears. 6. Navigate to the row of the desired card. 7. Select the **See more details** icon. ![card-token-status-flow-3.png](image/16763ca50c6dab.png) 8. The **Card details** page appears. ![card-token-status-flow-4.png](image/16763ca50cfcc7.png) 9. View a list of your digital wallet tokens. ![card-token-status-flow-5.png](image/16763ca50d9a4e.png) 10. Click on the row of the desired token. 11. The **Digital token details** side panel appears. ![card-token-status-flow-6.png](image/16763ca50e433d.png) 12. You can view the Digital token details, including: * **Token ID** - The identifier of the card token * **Requestor Name** - The name of the token requestor * **Requestor ID** - The identifier associated with the token requestor 13. You can view the Device details, including: * **Device Name** - The name of the mobile device connected to the digital wallet * **Device\_ID** - The identifier of the mobile device * **Device Manufacturer** - The manufacturer of the mobile device * **Device Language** - The preferred language of the mobile device. [##### How to Change Card Token Statuses](#idp261687_body) 1. Navigate to the **Card details** page of the provisioned card. 2. (Optional): Navigate to the card token row. Select the **Change status** icon. Skip to Step 6. **Note**: You can also activate the token by clicking on the **Activate** icon in the card token row. ![card-token-status-flow-7.png](image/16763ca50eeb40.png) 3. Select the desired token from the **Digital wallet tokens** table. 4. The digital token details side panel appears. 5. Click the Change status button. 6. The **Change token status** window appears. ![card-token-status-flow-8.png](image/16763ca51062dc.png) 7. Select the new token status from the drop-down. ![card-token-status-flow-9.png](image/16763ca510fb4c.png) 8. Write a short description about the token status change. 9. Click **Confirm**. ![card-token-status-flow-10.png](image/16763ca51199ec.png) ###### Reactivating Suspended Tokens When reactivating a suspended card token, additional verification is required. An One Time Password (OTP) will be sent to the mobile number associated with the Client Portal Account. The OTP must be submitted for the suspended card token to be reactivated. 1. Navigate to the row of the suspended token. 2. Click the **Change status** icon. 3. Enter the status change. 4. Enter a description about the status change. ![card-token-status-flow-11.png](image/16763ca5122af1.png) 5. Click **Confirm**. 6. Enter the OTP. ![card-token-status-flow-12.png](image/16763ca512c5fd.png) 7. Click **Submit**. In this section: Search results -------------- No results found * [Prev](viewing-a-list-of-card-tokens.html#idp261496) * [Next](changing-the-card-token-status.html#idp261607) --- # View Dispute Details [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Mobile Version](mobile-version.html) * [Collect](collect-383798.html) * View Dispute Details * [Prev](create-a-refund.html#idp268521) * [Next](view-dispute-details.html#idp268589) ##### View Dispute Details You can view the details of your disputes. This documentation is for the Mobile Version of Client Portal. [###### How to View Dispute Details](#idp268589_body) 1. Sign in as described in [Signing In to the Client Portal](signing-in-to-the-client-portal.html "Signing In to the Client Portal") and navigate to **Collect** > **Protect** > **Disputes**. The **Disputes** page appears. ![view-dispute-details-flow-1.png](image/16763ca58f3522.png) 2. Tap on a dispute to view the details. 3. The **Dispute Details** panel appears. ![view-dispute-details-flow-2.png](image/16763ca590922d.png) 4. The Panel contains the following information: **Status:** Indicates the status of the dispute. One of the following: * Active - a payment dispute has been sent by the card issuer * Lose - a payment dispute has been accepted, or a challenge has failed * Review - a dispute has been challenged and/or is pending review * Win - a dispute has been successfully challenged **Summary:** * Dispute Amount - The amount being disputed listed in units of currency * Category - The type of dispute * Description - A textual description of the dispute * Updated At - The date and time the dispute was last updated * Due Date - The date and time the dispute was submitted **Payment Details:** * Payment ID - An alphanumeric string that is a unique ID for the payment * Requested Amount - The amount of currency requested for the payment * Paid Amount - The numerical amount paid * Paid At - The date and time the refund was completed * Payment Origin - Which system the payment originated from * Description - A textual description of the payment * Merchant Reference ID - A unique identifier assigned to the merchant * Last 4 digits - The last 4 digits of the card number used in the payment **Customer Details:** * Customer ID - An alphanumeric string that serves as a unique identifier for the customer * Customer Name - The name of the customer * Customer Email - The email of the customer * Customer Phone - The phone number of the customer In this section: Search results -------------- No results found * [Prev](create-a-refund.html#idp268521) * [Next](view-dispute-details.html#idp268589) --- # Viewing Listed Transactions for Provisioned Cards [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Issuing](issuing.html) * Viewing Listed Transactions for Provisioned Cards * [Prev](downloading-a-report-of-issued-card-transactions.html#idp261339) * [Next](viewing-listed-transactions-for-provisioned-cards.html#idp261349) #### Viewing Listed Transactions for Provisioned Cards You can view a list of all transactions for cards that were provisioned for digital wallets. **Provisioning** refers to the process where an issued card is added to a digital wallet and tokenized. You can use Rapyd to provision cards for Apple Pay and Google Pay digital wallets. [##### How to View Listed Transactions](#idp261349_body) 1. Sign in as described in [Signing into the Client Portal](signing-in-to-the-client-portal.html "Signing In to the Client Portal") and navigate to **Issuing** > **Card transactions**. The **Card transactions** page appears. ![provisioned-cards-flow-1.png](image/16763ca505d3cd.png) 2. Search by **Contact Reference ID** to find the card transactions associated with the provisioned card. 3. Select **Contact Reference ID** from the drop down next to the search bar. ![provisioned-cards-flow-2.png](image/16763ca5066897.png) 4. Enter the Contact Reference ID in the search bar. 5. The transactions for the provisioned card appear. ![provisioned-cards-flow-3.png](image/16763ca5070971.png) 6. You can view the **Digital wallet token** and **Digital wallet type** for the card transactions. ![provisioned-cards-flow-4.png](image/16763ca5079ab3.png) 7. For more information about adding Columns and filtering the search, see [Listing Issued Card Transactions](listing-issued-card-transactions.html "Listing Issued Card Transactions") . Description of Fields | Field | Description | | --- | --- | | Transaction ID | Rapyd identifier of the transaction. | | Amount | The amount intended for the transaction recipient. | | Authorization Number | Reference number for the transaction authorization. | | Currency | Currency for the amount received by the transaction recipient. | | Created At | Time of creation of the transaction. | | Contact Name | Name of the wallet contact that the card is assigned to. | | Contact Reference ID | A unique identifier of the contact. | | Contact Phone Number | Phone number of the wallet contact that the card is assigned to. | | Direction | Direction of the transaction in relation to the card. One of the following:

* **In** - Funds are added to the card.

* **Out** - Funds are withdrawn from the card. | | Last 4 Digits | The last four digits of the card. | | POS Name & Location | Name and location of the transaction. | | Status | Status of the transaction. One of the following:

* Canceled

* Closed | | Wallet ID | ID of the wallet that the card is related to. | | Digital Wallet Token | The identifier for the provisioned card token. | | Digital Wallet Type | The type of digital wallet for the provisioned card. Possible values are:

* Google Pay Wallet

* Apple Pay Wallet | In this section: Search results -------------- No results found * [Prev](downloading-a-report-of-issued-card-transactions.html#idp261339) * [Next](viewing-listed-transactions-for-provisioned-cards.html#idp261349) --- # Submitting a Support Ticket [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Settings](settings.html) * Submitting a Support Ticket * [Prev](viewing-notifications.html#idp251590) * [Next](submitting-a-support-ticket.html#idp251738) #### Submitting a Support Ticket Submit a support ticket within Client Portal. [##### How to Submit a Support Ticket](#idp251738_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and click on the question mark icon in the upper right corner. ![creating-support-ticket-flow-1.png](image/16763ca3c8a4ef.png) 2. The **Support center** page appears. ![creating-support-ticket-flow-2.png](image/16763ca3c93c7a.png) 3. Click the **Contact support** button in the upper right corner. ![creating-support-ticket-flow-3.png](image/16763ca3c9cda2.png) 4. The **Contact support** panel appears. 5. Complete the Description field, and click **Next**. ![creating-support-ticket-flow-4.png](image/16763ca3ca748d.png) 6. Complete the following required fields: * **Category** - general, technical, or financial query * **Environment** - Production or Sandbox * **Subject** - The subject of the ticket * **Discovery date** - The time frame when the issue was discovered * **Total transaction value** - The value of the affected transaction * **How many transactions or users were affected** - Single, Partial, All, or Not relevant 7. Click **Next**. ![creating-support-ticket-flow-5.png](image/16763ca3cb1b0a.png) 8. (Optional) Upload any relevant files for your support ticket by clicking the **+** button. ![creating-support-ticket-flow-6.png](image/16763ca3cbb658.png) 9. Click **Submit**. In this section: Search results -------------- No results found * [Prev](viewing-notifications.html#idp251590) * [Next](submitting-a-support-ticket.html#idp251738) --- # External Network Tokenization [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Collect](rapyd-collect.html) * [Payment Features](payment-features.html) * External Network Tokenization * [Prev](payment-with-fx.html#idp223652) * [Next](external-network-tokenization.html#idp223979) ##### External Network Tokenization Securely accept card payments using network tokens provisioned by third-party on-behalf token requestors. You can use Rapyd to accept card payments with a third party network token. **Tokens** are alphanumeric strings that can be used instead of a PAN (Primary Account Number) for card transactions. **Network tokens** are a specific kind of card token issued by a **card network** like Visa or Mastercard. A third-party on-behalf token requestor can ask Visa or Mastercard to issue a network token. A token requestor has an integration with Visa and Mastercard Token Services. The network tokens are used by the merchants working with the token requestor. Network tokens are used to make card transactions more secure. The PAN (Primary Account Number) of a credit card is a 16-19 digit number used to identify the card. The network token acts as a placeholder to protect sensitive information during transactions. A network token is tied to a specific card, merchant, and token provider, which provides increased safety. For example, two different network tokens will be issued for a card that is tokenized by two different merchants. There are two elements to network tokens: the token string and the tavv (token authentication verification value). The **tavv** is a cryptogram generated by the card network and acts as an additional security measure. The merchant obtains new tavv cryptograms from the token provider (third-party token requestor). You can use the Rapyd Collect API to initiate a card payment using a third-party network token. Network tokenization provides a more secure way to process your card payments, and helps to prevent fraud. [###### Use Case](#idp223979_body) You are a partner or integrator working with multiple acquirers. You're looking for card acquiring services through Rapyd. You contract with a third-party on-behalf token requestor. You register your merchants with the token provider. You send your tokenization requests to the third-party token provider for the card information you have on file. You receive a network token in return, and store the network token for the card payment. During payment, you request a tavv cryptogram from the token requestor. You can then send your card payment to any acquirer. [###### Card Payment With Network Token Workflow](#idp223983_body) ![card-payment-workflow.jpg](image/16763ca3117eeb.png) 1. The customer completes the card payment in checkout on your website and consents to save their card information. 2. The card information is sent to the third-party token provider, who requests a token for the card from the appropriate card network. 3. You request Rapyd to process the card payment with a network token and token cryptogram. 4. Rapyd processes the payment and sends the response and webhook back to you. 5. You display your purchase success page to the customer. ### PCI Certification Only clients with [PCI-DSS](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_dss "Payment Card Industry Data Security Standard") certification can handle personal identifying information for cards. This method is available to merchants who have signed a special agreement with Rapyd. [###### How Card Payments With Network Tokens Work](#idp224003_body) [###### Find Available Payment Methods](#idp224005_body) Decide the Card Payment Types You'll Accept in a Chosen Country. Use [List Payment Methods by Country](list-payment-methods-by-country.html "List Payment Methods by Country") with the following parameters: * **IS** and **ISK** are used for country and currency in the sample codes below. **is\_visa\_card** is the payment method type. Description of Query Parameters | | | | --- | --- | | Query Parameter | Description | | country | Enter **IS** as the country code. | | currency | Enter **ISK** as the currency code. | ###### List Payment Methods by Country Request * * Request * // Request URL: GET https://sandboxapi.rapyd.net/v1/payment\_methods/country?country=IS¤cy=ISK // Message body absent ###### List Payment Methods by Country Response * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "c53a2e6b-74f6-42ba-a0a3-21724346a36c" }, "data": \[\ {\ "type": "is\_iban",\ "name": "tEST---is\_iban",\ "category": "bank\_transfer",\ "image": "https://iconslib.rapyd.net/checkout/is\_iban.png",\ "country": "IS",\ "payment\_flow\_type": "card",\ "currencies": \[\ "ISK"\ \],\ "status": 1,\ "is\_cancelable": false,\ "payment\_options": \[\ {\ "name": "capture",\ "type": "boolean",\ "regex": "",\ "description": "Determines when the payment is processed for capture",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "complete\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "URL where the customer is redirected for final steps in completing the operation.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "error\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "URL where the customer is redirected in case of an error in the operation.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "statement\_descriptor",\ "type": "string",\ "regex": "^.{1,13}$",\ "description": "A text description suitable for a customer's payment statement.",\ "is\_required": false\ },\ {\ "name": "description",\ "type": "string",\ "regex": "^(\[a-zA-Z\]){1,254}$",\ "description": "Description of the product or service",\ "is\_required": true,\ "is\_updatable": false\ }\ \],\ "is\_expirable": true,\ "is\_online": true,\ "is\_refundable": true,\ "minimum\_expiration\_seconds": 600,\ "maximum\_expiration\_seconds": 604800,\ "virtual\_payment\_method\_type": null,\ "is\_virtual": false,\ "multiple\_overage\_allowed": false,\ "amount\_range\_per\_currency": \[\ {\ "currency": "ISK",\ "maximum\_amount": null,\ "minimum\_amount": null\ }\ \],\ "is\_tokenizable": false,\ "supported\_digital\_wallet\_providers": \[\],\ "is\_restricted": false,\ "supports\_subscription": false\ },\ {\ "type": "is\_kwp\_card",\ "name": "KWP",\ "category": "card",\ "image": "https://iconslib.rapyd.net/checkout/is\_kwp\_card.png",\ "country": "is",\ "payment\_flow\_type": "",\ "currencies": \[\ "ISK"\ \],\ "status": 1,\ "is\_cancelable": true,\ "payment\_options": \[\ {\ "name": "description",\ "type": "string",\ "regex": "",\ "description": "the description field must be filled in.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "complete\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "the complete\_payment\_url field must be filled in.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "error\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "the error\_payment\_url field must be filled in.",\ "is\_required": true,\ "is\_updatable": false\ }\ \],\ "is\_expirable": false,\ "is\_online": true,\ "is\_refundable": true,\ "minimum\_expiration\_seconds": 0,\ "maximum\_expiration\_seconds": 0,\ "virtual\_payment\_method\_type": null,\ "is\_virtual": false,\ "multiple\_overage\_allowed": false,\ "amount\_range\_per\_currency": \[\ {\ "currency": "ISK",\ "maximum\_amount": null,\ "minimum\_amount": null\ }\ \],\ "is\_tokenizable": false,\ "supported\_digital\_wallet\_providers": \[\ "apple\_pay"\ \],\ "is\_restricted": false,\ "supports\_subscription": false\ },\ {\ "type": "is\_mastercard\_card",\ "name": "Mastercard",\ "category": "card",\ "image": "https://iconslib.rapyd.net/checkout/is\_mastercard\_card.png",\ "country": "is",\ "payment\_flow\_type": "",\ "currencies": \[\ "ISK"\ \],\ "status": 1,\ "is\_cancelable": true,\ "payment\_options": \[\ {\ "name": "capture",\ "type": "boolean",\ "regex": "",\ "description": "Determines when the payment is processed for capture.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "complete\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "the complete\_payment\_url field must be filled in.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "error\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "the error\_payment\_url field must be filled in.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "customer",\ "type": "string",\ "regex": "",\ "description": "ID of a customer object, a string starting with ‘cus\_‘. The customer object must contain the fields listed as required, and can contain additional fields listed here.If the customer object does not exist yet, use ‘Create Customer‘",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "initiation\_type",\ "type": "string",\ "regex": "(customer\_present|installment|moto|recurring|unscheduled)",\ "description": "This indicates how the transaction was initiated",\ "is\_required": false,\ "is\_updatable": false\ }\ \],\ "is\_expirable": false,\ "is\_online": true,\ "is\_refundable": true,\ "minimum\_expiration\_seconds": 0,\ "maximum\_expiration\_seconds": 0,\ "virtual\_payment\_method\_type": null,\ "is\_virtual": false,\ "multiple\_overage\_allowed": false,\ "amount\_range\_per\_currency": \[\ {\ "currency": "ISK",\ "maximum\_amount": null,\ "minimum\_amount": null\ }\ \],\ "is\_tokenizable": false,\ "supported\_digital\_wallet\_providers": \[\ "apple\_pay"\ \],\ "is\_restricted": false,\ "supports\_subscription": false\ },\ {\ "type": "is\_visa\_card",\ "name": "Visa",\ "category": "card",\ "image": "https://iconslib.rapyd.nethttps://qaiconslib.rapyd.net/https://qaiconslib.rapyd.net/checkout/is\_visa\_card.png",\ "country": "IS",\ "payment\_flow\_type": "",\ "currencies": \[\ "ISK"\ \],\ "status": 1,\ "is\_cancelable": true,\ "payment\_options": \[\ {\ "name": "description",\ "type": "string",\ "regex": "",\ "description": "the description field must be filled in.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "capture",\ "type": "boolean",\ "regex": "",\ "description": "Determines when the payment is processed for capture.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "complete\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "the complete\_payment\_url field must be filled in.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "error\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "the error\_payment\_url field must be filled in.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "customer",\ "type": "string",\ "regex": "",\ "description": "ID of a customer object, a string starting with ‘cus\_‘. The customer object must contain the fields listed as required, and can contain additional fields listed here.If the customer object does not exist yet, use ‘Create Customer‘",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "ewallet",\ "type": "string",\ "regex": "^ewallet\_\[a-f0-9\]{32}$",\ "conditions": \[\ {\ "operator": "$eq",\ "description": "If the value of the field type is true, ewallet is mandatory field",\ "element\_name": "payment.payment\_method\_options.aft",\ "threshold\_value": "true"\ }\ \],\ "description": "ID of the wallet that the money is paid into. String starting with ewallet\_.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "initiation\_type",\ "type": "string",\ "regex": "(customer\_present|installment|moto|recurring|unscheduled)",\ "description": "This indicates how the transaction was initiated",\ "is\_required": false,\ "is\_updatable": false\ }\ \],\ "is\_expirable": false,\ "is\_online": false,\ "is\_refundable": true,\ "minimum\_expiration\_seconds": 0,\ "maximum\_expiration\_seconds": 0,\ "virtual\_payment\_method\_type": null,\ "is\_virtual": false,\ "multiple\_overage\_allowed": false,\ "amount\_range\_per\_currency": \[\ {\ "currency": "ISK",\ "maximum\_amount": null,\ "minimum\_amount": null\ }\ \],\ "is\_tokenizable": false,\ "supported\_digital\_wallet\_providers": \[\ "apple\_pay"\ \],\ "is\_restricted": false,\ "supports\_subscription": false\ }\ \] } [###### Get the Required Fields for the Payment Method Type](#idp224058_body) Use the [Get Payment Method Required Fields](get-payment-method-required-fields.html "Get Payment Method Required Fields") with the following parameter: The `data` section of this response shows that a Valitor card is the payment method type you will use. Description of Path Parameters | | | | --- | --- | | Path Parameter | Description | | type | Enter **is\_visa\_card** as the payment method type. | ###### Get Payment Method Required Fields Request Request a set of required fields for a card. * * Request * // Request URL: GET https://sandboxapi.rapyd.net/v1/payment\_methods/required\_fields/is\_visa\_card // Message body absent ###### Get Payment Method Required Fields Response The response below shows that for a Valitor card, the customer must fill in: * `name` * `number` * `expiration_month` * `expiration_year` * `CVV` * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "1afab4a9-2c9e-449b-a36b-a6d4231a1bb9" }, "data": { "type": "is\_visa\_card", "fields": \[\ {\ "name": "token",\ "type": "string",\ "regex": "",\ "is\_required": false,\ "instructions": ""\ },\ {\ "name": "name",\ "type": "string",\ "regex": "",\ "is\_required": true,\ "instructions": "card holder name"\ },\ {\ "name": "number",\ "type": "string",\ "regex": "",\ "is\_required": true,\ "instructions": "card number"\ },\ {\ "name": "expiration\_month",\ "type": "string",\ "regex": "",\ "is\_required": true,\ "instructions": "expiration month as string, 01-12"\ },\ {\ "name": "expiration\_year",\ "type": "string",\ "regex": "",\ "is\_required": true,\ "instructions": "expiration year in to digits as string, 18-99"\ },\ {\ "name": "cvv",\ "type": "string",\ "regex": "",\ "is\_required": true,\ "instructions": "card cvv"\ },\ {\ "name": "merchant\_custom\_token",\ "type": "string",\ "regex": "",\ "is\_required": false,\ "instructions": "merchant custom token"\ },\ {\ "name": "recurrence\_type",\ "type": "string",\ "regex": "(recurring|installment|unscheduled)",\ "description": "This indicates the purpose of the token. should be aligned with the subsequent payments using the token.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "network\_reference\_id",\ "type": "string",\ "regex": "",\ "description": "Network Reference Id",\ "is\_required": false\ },\ {\ "name": "number\_type",\ "type": "string",\ "regex": "(fpan|tpan)",\ "description": "Determining if number is funding PAN or token PAN",\ "is\_required": false\ }\ \], "payment\_method\_options": \[\ {\ "name": "3d\_required",\ "type": "boolean",\ "regex": "",\ "description": "Allows the client to determine whether the customer is required to complete 3DS authentication for the transaction",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "is\_korta",\ "type": "boolean",\ "regex": "",\ "description": "",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "merchant\_ref",\ "type": "string",\ "regex": "",\ "description": "",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "3d\_version",\ "type": "String",\ "regex": "(1.0.2|2.1.0|2.2.0)",\ "description": "3D Secure version of the transaction.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "cavv",\ "type": "String",\ "regex": "",\ "description": "Cardholder Authentication Verification Value represented as a 20-byte value that is base64 encoded.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "eci",\ "type": "String",\ "regex": "(01|02|05|06|07|08)",\ "description": "Electronic Commerce Indicator (ECI) from MPI Plugin(3-D Secure 1.0) or 3DS Server(3-D Secure 2.0).",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "xid",\ "type": "String",\ "regex": "",\ "description": "3D Secure XID, Base64 encoded.Required for VISA 1.0",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "ds\_trans\_id",\ "type": "String",\ "regex": "",\ "description": "The Directory Server (DS) Transaction ID. Required Mastercard 2.0.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "special\_features",\ "type": "string",\ "regex": "^(crypto)$",\ "description": "Additional information about the payment. Possible values: crypto - The payment involves cryptocurrency. ",\ "is\_required": false\ },\ {\ "name": "is\_valitor",\ "type": "boolean",\ "regex": "",\ "description": "",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "tavv",\ "type": "String",\ "regex": "",\ "description": "Token Authentication Verification Value represented as a 20-byte value that is base64 encoded.",\ "is\_required": false,\ "is\_updatable": false\ }\ \], "payment\_options": \[\ {\ "name": "description",\ "type": "string",\ "regex": "",\ "description": "the description field must be filled in.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "capture",\ "type": "boolean",\ "regex": "",\ "description": "Determines when the payment is processed for capture.",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "complete\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "the complete\_payment\_url field must be filled in.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "error\_payment\_url",\ "type": "string",\ "regex": "",\ "description": "the error\_payment\_url field must be filled in.",\ "is\_required": true,\ "is\_updatable": false\ },\ {\ "name": "is\_korta",\ "type": "boolean",\ "regex": "",\ "description": "",\ "is\_required": false,\ "is\_updatable": false\ },\ {\ "name": "customer",\ "type": "string",\ "regex": "",\ "description": "ID of a customer object, a string starting with cus\_. The customer object must contain the fields listed as required, and can contain additional fields listed here.If the customer object does not exist yet, use Create Customer",\ "is\_required": true,\ "is\_updatable": false\ }\ \], "minimum\_expiration\_seconds": 60, "maximum\_expiration\_seconds": 604800 } } [###### Create a Card Payment for a Customer](#idp224119_body) See [Create Payment](create-payment.html "Create Payment") for more detailed information about the fields and objects used in the request. Description of Body Parameters | | | | --- | --- | | Body Parameter | Description | | amount | Enter 250 as the payment amount. | | currency | Enter **USD** as the currency code. | | capture | Enter **true** as the value. This tells Rapyd to collect the payment for you right away. If 'false', a hold will be put on the card and the funds will not be captured until the status is updated. | Object Fields Include the `payment_method` object and `payment_method_options` object in the body of the request. | Object | Field | Description | | --- | --- | --- | | payment\_method | type | Enter **is\_visa\_card** as the type | | payment\_method | name | Enter **Visa Card Test** as the name | | payment\_method | number | Enter **5186151969991591** as the card number | | payment\_method | expiration\_month | Enter **12** as the expiration month | | payment\_method | expiration\_year | Enter **30** as the expiration year | | payment\_method | cvv | Enter **123** | | payment\_method | number\_type | Indicates if the **number** field contains a card token or a regular card number.

Two possible values:

* **TPAN** - tokenized primary account number.

* **FPAN** - funding primary account number.


Enter **TPAN** as the value when using a network token for the payment. | | payment\_method\_options | tavv | Enter **AIwq5CHaXx1uAD09xomcAAADFA==**

* This field is required for customer initiated payments.

* This field is optional for merchant initiated payments. | ###### Create Payment Request * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/payments // Message body: { "amount": 250, "currency": "USD", "capture": true, "description": "visa demo 3", "initiation\_type": "customer\_present", "payment\_method": { "type": "is\_visa\_card", "fields": { "name": "Visa Card Test", "number": "5186151969991591", "expiration\_month": "12", "expiration\_year": "30", "number\_type": "TPAN" } }, "payment\_method\_options": { "cavv": "kBMcQDw42rjEKBDCA/WQw5eBlMGf", "eci": "02", "ds\_trans\_id": "8a567e19-8580-49bd-a5e5-2d6bc1924602", "tavv": "AIwq5CHaXxluAD09xomcAAADFA==" }, "complete\_payment\_url": "https://www.rapyd.net", "error\_payment\_url": "https://www.docs.rapyd.net" } ###### Create Payment Response * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "a3ff86a3-f045-4806-9e32-8c3c99c2c820" }, "data": { "id": "payment\_1d022d3ff321baf483525253072d3943", "amount": 250, "original\_amount": 250, "is\_partial": false, "currency\_code": "USD", "country\_code": "IS", "status": "CLO", "description": "visa demo 3", "merchant\_reference\_id": "", "customer\_token": "cus\_b3c1bd3012ea414219fd95243c0803b0", "payment\_method": "card\_fb413caa11dd94e3bcffb0dff24f6290", "payment\_method\_data": { "id": "card\_fb413caa11dd94e3bcffb0dff24f6290", "type": "is\_visa\_card", "category": "card", "metadata": null, "image": "", "webhook\_url": "", "supporting\_documentation": "", "next\_action": "not\_applicable", "name": "Visa Card Test", "last4": "1591", "acs\_check": "unchecked", "cvv\_check": "unchecked", "bin\_details": { "type": null, "brand": null, "level": null, "issuer": null, "country": null, "bin\_number": "518615" }, "number\_type": "TPAN", "expiration\_year": "30", "expiration\_month": "12", "fingerprint\_token": "ocfp\_180e9479ba47ac71fb88dcf719e88234", "network\_reference\_id": "ABC8791471120" }, "auth\_code": "794487", "expiration": 1701085308, "captured": true, "refunded": false, "refunded\_amount": 0, "receipt\_email": "", "redirect\_url": "", "complete\_payment\_url": "https://www.rapyd.net", "error\_payment\_url": "https://www.docs.rapyd.net", "receipt\_number": "", "flow\_type": "", "address": null, "statement\_descriptor": "ARMONICCI", "transaction\_id": "", "created\_at": 1700480507, "metadata": {}, "failure\_code": "", "failure\_message": "", "paid": true, "paid\_at": 1700480519, "dispute": null, "refunds": null, "order": null, "outcome": null, "visual\_codes": {}, "textual\_codes": {}, "instructions": {}, "ewallet\_id": "ewallet\_cada587d3a817b42fca2c6ba63ac1d1b", "ewallets": \[\ {\ "ewallet\_id": "ewallet\_cada587d3a817b42fca2c6ba63ac1d1b",\ "amount": 250,\ "percent": 100,\ "refunded\_amount": 0\ }\ \], "payment\_method\_options": { "eci": "02", "cavv": "kBMcQDw42rjEKBDCA/WQw5eBlMGf", "ds\_trans\_id": "8a567e19-8580-49bd-a5e5-2d6bc1924602" }, "payment\_method\_type": "is\_visa\_card", "payment\_method\_type\_category": "card", "fx\_rate": 1, "merchant\_requested\_currency": null, "merchant\_requested\_amount": null, "fixed\_side": "", "payment\_fees": null, "invoice": "", "escrow": null, "group\_payment": "", "cancel\_reason": null, "initiation\_type": "customer\_present", "mid": "mid\_63e991ad4ba1a1508ffa8df196c0b8e3", "next\_action": "not\_applicable", "error\_code": "", "remitter\_information": {}, "save\_payment\_method": true } } The response shows that Rapyd successfully processed the payment based on the amount, currency, and payment method. The payment is successful since the `status` is **CLO** (closed). You can now notify your customer that the purchase is complete. In this section: Regulations developed for the [payment card industry](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pci) for data security and protection against fraud. Search results -------------- No results found * [Prev](payment-with-fx.html#idp223652) * [Next](external-network-tokenization.html#idp223979) --- # Bank Payout United Kingdom [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payout Method Types](payout-method-types.html) * [EMEA](emea-401604.html) * Bank Payout United Kingdom * [Prev](bank-payout-ukraine.html#idp241360) * [Next](bank-payout-united-kingdom.html#idp241411) ##### Bank Payout United Kingdom Disburse funds directly to a bank account. | `Enterprise` **gb\_fps\_bank** is a new bank payout method type via UK Faster Payments, that is used for payouts in the United Kingdom. A sender can disburse funds into a beneficiary’s bank account in the United Kingdom. This payout method supports several banks in the region and allows the beneficiary to be paid in the country’s local currency. The benefits for the user include the ability to create real-time payouts through local bank transfers and disburse funds into United Kingdom bank accounts. [###### Finding Required Fields for the Payout Method Type](#idp241411_body) You need to find the required fields for each payout method type. For that, you'll use [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields") . Enter **gb\_fps\_bank** as the value for the `payout_method_type` path parameter. [###### Requesting a Payout](#idp241418_body) Use [Create Payout](create-payout.html "Create Payout") with the following parameters: Create Payout Request Parameters | | | | --- | --- | | **Body Parameter** | **Description** | | ewallet | Enter the wallet 'id' that you received when you created the company wallet in your sandbox. | | payout\_amount | Enter 100 as the amount received by the beneficiary. | | payout\_method\_type | Enter **gb\_fps\_bank** as the payout method type. | | sender\_currency | Enter **GBP** as the code for British Pound Sterling, the sender's currency. | | sender\_country | Enter **GB** as the code for the United Kingdom, the sender's country. | | beneficiary\_country | Enter **GB** as the code for the United Kingdom, the beneficiary's country. | | payout\_currency | Enter **GBP** as the code for British Pound Sterling, the currency received by the beneficiary. | | sender\_entity\_type | Enter ‘individual’ as the type of entity for the sender. | | beneficiary\_entity\_type | Enter ‘individual’ as the type of entity for the beneficiary. | | beneficiary | Enter a `beneficiary object` that has the following fields:

* **company\_name** - company

* **date\_of\_incorporation** - company

* **identification\_type** - individual or company

* **identification\_value** - individual or company

* **first\_name** - individual

* **last\_name** - individual

* **date\_of\_birth** - individual

* **phone\_number** - individual or company

* **iban** - individual or company

* **address** - individual or company

* **post\_code** - individual or company

* **city** - individual or company

* **country** - individual or company | | sender | Enter a `sender` object that has the following fields:

* **company\_name** - company

* **first\_name** - individual

* **last\_name** - individual

* **date\_of\_birth** - individual

* **identification\_type** - individual or company

* **identification\_value** - individual or company

* **phone \_number** - individual or company

* **address** - individual or company

* **city** - individual or company

* **postcode** - individual or company

* **country** - individual or company

* **source\_of\_income** - individual or company

* **date\_of\_incorporation** - company | | description | Enter ‘salary payout - wallet to bank account’ as the description of the payout transaction. | | payout\_options | Enter a `payout_options` object with the following fields:

* **beneficiary\_country**

* **beneficiary\_relationship**

* **purpose\_code** | [###### Create Payout Response](#idp241598_body) [Create Payout](create-payout.html "Create Payout") describes the fields in the response. [###### Local Bank Payout United Kingdom Details](#idp241602_body) | | | | --- | --- | | **Details** | **Description** | | Payout Method Category | bank | | Payout Request String | POMT = gb\_fps\_bank | | Country | United Kingdom | | Sender Currency | USD, ISK, GBP, EUR, SGD, HKD, AUD | | Transaction Limits | Minimum / transaction: 1.00 GBP

Maximum / transaction: 999,999 GBP | | Settlement Timeframe | Real-time | In this section: Search results -------------- No results found * [Prev](bank-payout-ukraine.html#idp241360) * [Next](bank-payout-united-kingdom.html#idp241411) --- # Viewing Payout Methods [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Settings](settings.html) * Viewing Payout Methods * [Prev](viewing-payment-methods.html#UUID-60fe49b9-927b-e16a-05de-9e9e37367f06_N1692125156614) * [Next](viewing-payout-methods.html#idp251070) #### Viewing Payout Methods Payout methods are listed on the **Payout Methods** page. [##### How to View Payout Methods](#idp251070_body) 1. Sign in as described in [Signing in to the Client Portal](signing-in-to-the-client-portal.html "Signing In to the Client Portal") . 2. Navigate to **Settings** > **Payout Methods**. The **Payout Methods** page appears. ![viewing-payout-methods-flow-1.png](image/16763ca41b13b8.png) 3. Toggle between the production environment and the sandbox environment. * If you are in the production environment and select **Payout Methods**, you will see all of the payout methods your company is currently licensed to use. * If you are in the sandbox environment and select **Payout Methods**, you will see all available payout methods. 4. You can modify the display as follows: * Use the **Card view** to look around the payment methods by region and country. ![viewing-payout-methods-flow-2.png](image/16763ca41baddb.png) * To view payment methods by row, select **Table view**. ![viewing-payout-methods-flow-3.png](image/16763ca41c4712.png) * To choose the columns to display, click the **Choose Columns** icon in the upper right. * To filter the list, click the **Filter** icon in the upper right. ###### Activate / Deactivate Payout Method You can activate or deactivate a payout method by going to the Active or Deactivated tab and click the **three dots** at the end of the row > **Activate** or **Deactivate**. [##### Request a Payout Method](#UUID-76394fc9-e439-2a5d-15ce-723ebf1d8eb8_N1692125029624_body) To request a payout method, navigate to **Settings** > **Payout Methods** > **No Access** > **three dots** at the end of the row > **Request Access**. ### Prerequisite: Submit Your KYB Your KYB for Account Activation should be submitted before requesting access to payout methods with Rapyd Disburse. In this section: Search results -------------- No results found * [Prev](viewing-payment-methods.html#UUID-60fe49b9-927b-e16a-05de-9e9e37367f06_N1692125156614) * [Next](viewing-payout-methods.html#idp251070) --- # Managing Your User Profile [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [My Account](my-account.html) * Managing Your User Profile * [Prev](creating-multiple-accounts.html#idp250076) * [Next](managing-your-user-profile.html#idp250104) #### Managing Your User Profile From the User Profile page, you can view and manage your: * Personal details. * Secure login MFA method. * Assigned accounts. [##### How to Manage Your User Profile](#idp250104_body) * Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to the user account drop-down in the upper right corner. * Select the **User profile** icon from the drop-down menu. ![managing-user-profile-flow-1.png](image/16763ca3f4b030.png) The **User profile** page appears. ![managing-user-profile-flow-2.png](image/16763ca3f56365.png) ### Note The information displayed on the User profile page depends on your role. See [Users and Roles](users-and-roles.html "Users and Roles") . [##### Editing Personal Details](#idp250124_body) You can edit personal details including the following: * Full name * Phone number * Password **Note**: You can reset your password via Whatsapp if you have MFA (multi-factor authentication) enabled via Whatsapp. To edit the SMS or MFA Settings, refer to [Changing Your MFA Preference](changing-your-mfa-preference.html "Changing Your MFA Preference") . Click **Edit** on the right, type your new information, and click **Save** or **Apply**. Under the **Assigned Accounts** section, you can see the accounts you’re assigned to. You can remove yourself from an assigned account if you are not the owner. The account owner can delete an assigned account by navigating to **Settings** > **Account Details**. ### Warning Do not share your password details with anyone. Refer to [Users and Roles](users-and-roles.html "Users and Roles") about inviting restricted users to your account. In this section: Search results -------------- No results found * [Prev](creating-multiple-accounts.html#idp250076) * [Next](managing-your-user-profile.html#idp250104) --- # Rendimento [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payout Method Types](payout-method-types.html) * [Americas](americas-497167.html) * Rendimento * [Prev](bank-payout-united-states.html#idp237841) * [Next](rendimento.html#idp237894) ##### Rendimento Use a variety of local payout methods in Brazil. | `Enterprise` Rendimento is a gateway in the Rapyd Network that allows you to process transactions and complete local payouts using bank transfers from Brazil. Bank transfers are a Payout Method Type that allow for the accurate disbursement of funds to a beneficiary, or recipient of the funds. The benefits for the user include the ability to create crossborder payouts and disburse funds into various bank accounts. You need to find the required fields for each payout method type when creating a payout. See [Payout to a Bank Account](bank-account-payout.html "Bank Account Payout") for more detailed information about creating a payout. [###### Supported Bank POMTs and Bank Codes](#idp237894_body) Below is a list of all the supported bank POMTs for **Rendimento** and their bank codes: | Bank POMT | Bank Code | | --- | --- | | br\_banco\_digio\_xb\_bank | 335 | | br\_banco\_acesso\_xb\_bank | 332 | | br\_banco\_agibank\_xb\_bank | 121 | | br\_banco\_xp\_sa\_xb\_bank | 348 | | br\_banco\_mercado\_pago\_xb\_bank | 323 | | br\_banco\_pagseguro\_xb\_bank | 290 | | br\_banco\_safra\_sa\_xb\_bank | 422 | | br\_banco\_c6\_xb\_bank | 336 | | br\_banco\_seguro\_xb\_bank | 081 | | br\_banco\_travelex\_xb\_bank | 095 | | br\_banco\_credialianca\_xb\_bank | 098 | | br\_banco\_cm\_xb\_bank | 180 | | br\_banco\_bradescard\_xb\_bank | 063 | | br\_banco\_moneycorp\_xb\_bank | 259 | | br\_banco\_sagitur\_xb\_bank | 270 | | br\_banco\_agk\_xb\_bank | 272 | | br\_banco\_sulcredi\_miguel\_xb\_bank | 273 | | br\_banco\_money\_plus\_xb\_bank | 274 | | br\_banco\_senff\_xb\_bank | 276 | | br\_banco\_genial\_xb\_bank | 278 | | br\_banco\_coop\_primavera\_xb\_bank | 279 | | br\_banco\_avista\_xb\_bank | 280 | | br\_banco\_coopavel\_xb\_bank | 281 | | br\_banco\_rb\_xb\_bank | 283 | | br\_banco\_frente\_xb\_bank | 285 | | br\_banco\_sulcredi\_ouro\_xb\_bank | 286 | | br\_banco\_carol\_xb\_bank | 288 | | br\_banco\_decyseo\_xb\_bank | 289 | | br\_banco\_bs2\_xb\_bank | 292 | | br\_banco\_lastro\_xb\_bank | 293 | | br\_banco\_vision\_xb\_bank | 296 | | br\_banco\_vip\_xb\_bank | 298 | | br\_banco\_sorocred\_xb\_bank | 299 | | br\_banco\_bpp\_xb\_bank | 301 | | br\_banco\_portopar\_xb\_bank | 306 | | br\_banco\_terra\_xb\_bank | 307 | | br\_banco\_cambionet\_xb\_bank | 309 | | br\_banco\_vortx\_xb\_bank | 310 | | br\_banco\_pi\_xb\_bank | 315 | | br\_banco\_om\_xb\_bank | 319 | | br\_banco\_crefaz\_xb\_bank | 321 | | br\_banco\_ccr\_xb\_bank | 322 | | br\_banco\_orama\_xb\_bank | 325 | | br\_banco\_parati\_xb\_bank | 326 | | br\_banco\_qi\_xb\_bank | 329 | | br\_banco\_bari\_xb\_bank | 330 | | br\_banco\_fram\_xb\_bank | 331 | | br\_banco\_super\_xb\_bank | 340 | | br\_banco\_creditas\_xb\_bank | 342 | | br\_banco\_ffa\_xb\_bank | 343 | | br\_banco\_amagig\_xb\_bank | 349 | | br\_banco\_crenhor\_xb\_bank | 350 | | br\_banco\_toro\_xb\_bank | 352 | | br\_banco\_necton\_xb\_bank | 354 | | br\_banco\_otimo\_xb\_bank | 355 | | br\_banco\_zema\_xb\_bank | 359 | | br\_banco\_trinus\_xb\_bank | 360 | | br\_banco\_cielo\_xb\_bank | 362 | | br\_banco\_socopa\_xb\_bank | 363 | | br\_banco\_gerencianet\_xb\_bank | 364 | | br\_banco\_solidus\_xb\_bank | 365 | | br\_banco\_vitreo\_xb\_bank | 367 | | br\_banco\_csf\_xb\_bank | 368 | | br\_banco\_warren\_xb\_bank | 371 | | br\_banco\_up\_xb\_bank | 373 | | br\_banco\_mercedez\_xb\_bank | 381 | | br\_banco\_boleto\_tec\_xb\_bank | 383 | | br\_banco\_toyota\_xb\_bank | 387 | | br\_banco\_gm\_xb\_bank | 390 | | br\_banco\_sulcredi\_ibiam\_xb\_bank | 391 | | br\_banco\_alfa\_xb\_bank | 025 | In this section: Search results -------------- No results found * [Prev](bank-payout-united-states.html#idp237841) * [Next](rendimento.html#idp237894) --- # Rotating Your Plugin Keys [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Plugins](plugins.html) * [Plugins and Add-Ons](plugins-and-add-ons.html) * Rotating Your Plugin Keys * [Prev](rapyd-payments-plugin-for-opencart.html#idp421869) * [Next](rotating-your-plugin-keys.html#idp421894) #### Rotating Your Plugin Keys A guide to rotating your Plugin Keys in Client Portal You can rotate your Plugin API Keys in the Client Portal if your Plugin API keys in sandbox or production were compromised, or if you wished to rotate the API keys regularly. You must have Owner permissions to rotate your plugin API keys. For example, if you experienced a security breach where your plugin API keys had been exposed to the public, you can rotate your plugin API keys. This allows you to use new plugin API keys. [##### How to Rotate Plugin API Keys](#idp421894_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Settings** > **Plugins**. The **Plugins** page appears. ![image3.png](image/16763ca5ec4d11.png) 2. Select the desired plugin. 3. The Plugin details page appears. ![image7.png](image/16763ca5ed20d9.png) 4. Click the **Rotate API keys** button in the upper right corner. 5. The **Choose when to revoke the existing key** dialogue box appears. ![image2.png](image/16763ca5edb258.png) 6. Select the time frame when you would like to rotate your API Keys in the drop-down. The time frame ranges from Now to 7 Days. ![image8.png](image/16763ca5ee43f5.png) 7. Click **Next**. 8. The **Warning!** dialogue box appears. ![image5.png](image/16763ca5ef049d.png) ### Updating API Keys Make sure to update any script or program with the new API Keys, and accept Webhooks with either the new or previous API keys until the previous API keys are revoked. Not updating such scripts on time will prevent any payments that used the previous API keys. 9. Click the checkbox that says **I confirm rotating the API keys**. ![image1.png](image/16763ca5f05a4e.png) 10. Click **Next**. The Two Factor Authentication dialogue box appears. ![rotate-plugin-keys-flow-7.png](image/16763ca5f0f536.png) 11. Enter your 6-digit SMS code. 12. Click **Submit**. The confirmation window appears. ![rotate-plugin-keys-flow-8.png](image/16763ca5f19df5.png) 13. An email notification will inform you the API keys have been rotated, and state when the previous API keys expire. The notification will be sent to users who have permission to view the API Keys. In this section: Search results -------------- No results found * [Prev](rapyd-payments-plugin-for-opencart.html#idp421869) * [Next](rotating-your-plugin-keys.html#idp421894) --- # Payment Link Details [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Collect](collect.html) * [Payment Links](payment-links-479256.html) * Payment Link Details * [Prev](creating-a-payment-link.html#idp254142) * [Next](payment-link-details.html#idp254175) ##### Payment Link Details View more details about your payments in Client Portal. You can create a reusable link or a one-time link for customers. Reusable payment links can be used multiple times by different customers. One-time payment links are single use before they become inactive. [###### Viewing Payment Link Details](#idp254175_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Collect** > **Payment Links** > **Reusable Links**. 2. The **Reusable links** page appears. ![payment-link-details-flow-1.png](image/16763ca46d1de5.png) **Note**: You can navigate to **Collect** > **Payment Links** > **One time links** to view a table of your one time payment links. 3. Click on a payment link to view additional information. 4. The **Reusable payment link details** panel appears. ![payment-link-details-flow-2.png](image/16763ca46da8de.png) 5. Click on the **See all details** link. 6. The **Payment links** details page appears. ![payment-link-details-flow-3.png](image/16763ca46e2f0e.png) 7. From this page, you can view: * Payment Link Status * Payment Link Details * Payments * Customer Details In this section: Search results -------------- No results found * [Prev](creating-a-payment-link.html#idp254142) * [Next](payment-link-details.html#idp254175) --- # Changing a User's Role [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Users and Roles](users-and-roles.html) * Changing a User's Role * [Prev](creating-a-new-user-role.html#idp252071) * [Next](changing-a-user-s-role.html#idp252114) #### Changing a User's Role You can change a team member's role on the **Members** page. This procedure requires Owner or Administrator privileges. ### Change Account Owner Email Address To change the email address of the owner of the Client Portal account, submit a ticket to support. See [Submitting a Support Ticket](submitting-a-support-ticket.html "Submitting a Support Ticket") . [##### How to Change a User's Role](#idp252114_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Settings** > **Team members & Roles** > **Members**. The **Members** page appears. ![changing-user-role-flow-1.png](image/16763ca42c5970.png) 2. Go the row of the team member whose role you want to change. 3. Click the **Edit user role** icon. ![changing-user-role-flow-2.png](image/16763ca42cf456.png) 4. The **Edit user role** dialog box appears. ![changing-user-role-flow-3.png](image/16763ca42d8a53.png) 5. Tap the **Select role** drop-down list and select a different role. ![changing-user-role-flow-4.png](image/16763ca42e1824.png) 6. Tap **Save**. The team member's role is updated. In this section: Search results -------------- No results found * [Prev](creating-a-new-user-role.html#idp252071) * [Next](changing-a-user-s-role.html#idp252114) --- # Inviting a User [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Users and Roles](users-and-roles.html) * Inviting a User * [Prev](viewing-users.html#idp251993) * [Next](inviting-a-user.html#idp252037) #### Inviting a User You can invite new users to the Client Portal from the Users page. This procedure requires Owner, Administrator, or Editor privileges. [##### How to Invite a User](#idp252037_body) 1. Sign in as described in [Signing in to the Client Portal](signing-in-to-the-client-portal.html "Signing In to the Client Portal") and navigate to **Settings** > **Team members & Roles** > **Members**. The **Members** section appears. ![6480896cc55cd.png](image/16763ca429dbf1.png) 2. Tap the **Invite members** button at the top right of the screen. The **Invite team members** dialog box appears. ![6480896f391a9.png](image/16763ca42a7294.png) 3. Enter the details of the new team and click **Invite**. Rapyd sends an invitation to the email address you provided. **Note**: Click **\+ Add user** to invite multiple users. In this section: Search results -------------- No results found * [Prev](viewing-users.html#idp251993) * [Next](inviting-a-user.html#idp252037) --- # Changing Your MFA Preference [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [My Account](my-account.html) * Changing Your MFA Preference * [Prev](multi-wallet-client-account.html#idp250683) * [Next](changing-your-mfa-preference.html#idp250715) #### Changing Your MFA Preference Change your MFA login method. Your account login uses MFA for verification. You can switch between SMS text, an authenticator application or Whatsapp. **Note**: The preference settings will affect your MFA user login. [##### How to Change Your MFA Login Preference](#idp250715_body) To view your user account MFA Login details: 1. Sign in to the Client Portal as described in [Signing in to the Client Portal](signing-in-to-the-client-portal.html "Signing In to the Client Portal") . 2. Navigate to your username at the top right corner > select the **User profile** icon in the drop-down. ![managing-your-preference-flow-1.png](image/16763ca40b1558.png) The **User profile** page appears. ![managing-your-preference-flow-2.png](image/16763ca40ba793.png) 3. Under Secure Login, select **Change Method**. 4. The **Secure Login** dialog box appears. ![managing-your-preference-flow-3.png](image/16763ca40c5a28.png) 5. Select Authenticator app, SMS Authentication, or Whatsapp Authentication from the drop-down. ![managing-your-preference-flow-4.png](image/16763ca40cf024.png) 6. Click **Save**. 7. On your mobile device, open your authenticator app and select system settings to scan QR code. The 6 digit number generator should appear, titled Rapyd - Client Portal (your email). **Note**: If you selected **SMS authentication** you should receive an SMS message with the 6 digit code. If you selected **Whatsapp Authentication** you will receive your 6 digit code via the app. 8. Type the 6 digit code in the dialog to verify your phone number. 9. Click **Verify Code** to change your MFA login method. ![managing-your-preference-flow-5.png](image/16763ca40d7968.png) In this section: Search results -------------- No results found * [Prev](multi-wallet-client-account.html#idp250683) * [Next](changing-your-mfa-preference.html#idp250715) --- # Downloading Your Proof of Account [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [My Account](my-account.html) * Downloading Your Proof of Account * [Prev](downloading-your-account-statement.html#idp250198) * [Next](downloading-your-proof-of-account.html#idp250295) #### Downloading Your Proof of Account You can download a proof of account file for a Rapyd wallet account. The file data is generated within a custom time period. The file is in PDF format. This procedure requires Owner, Administrator, or Editor privileges. [##### How to Download a Proof of Account File](#idp250295_body) 1. Sign in as described in Accessing the Client Portal and navigate to **My Account** > **Account management**. The **Account Management** page appears. ![download-proof-of-account-flow-1.png](image/16763ca3f7d8f4.png) 2. Tap the **Download proof of account** button in the middle left corner of the upper banner. The **Download proof of account** dialog box appears. ![download-proof-of-account-flow-2.png](image/16763ca3f8844f.png) 3. Select the Rapyd Wallet account. 4. Select the currency. 5. Select **Current Balance**. 6. Click **Download File**. ### Custom Date Ranges * You can select a custom date range when downloading your account statement to capture more precise information about your account. * Select the **Choose Manually** tab under **Closing Balance Date**. * Choose your date range for your closing balance. The date range can be up to one year. * The closing balance will be the wallet balance at the last day of the selected month. ![download-proof-of-account-flow-3.png](image/16763ca3f90fe8.png) 7. Tap **Download File**. * A pop-up message confirms that your report is being processed. When your report is ready, Rapyd sends you a notification by email. * In the email message, tap **Get File**. * The file is downloaded to the **Downloads** folder on your local computer. ![download-proof-of-account-flow-4.png](image/16763ca3f9a8a8.png) In this section: Search results -------------- No results found * [Prev](downloading-your-account-statement.html#idp250198) * [Next](downloading-your-proof-of-account.html#idp250295) --- # Downloading Your Account Statement [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [My Account](my-account.html) * Downloading Your Account Statement * [Prev](managing-your-user-profile.html#idp250124) * [Next](downloading-your-account-statement.html#idp250153) #### Downloading Your Account Statement You can download a report of your Account Statement for a Rapyd wallet account. The report is in PDF format. This procedure requires Owner, Administrator, or Editor privileges. [##### How to Download Your Account Statement](#idp250153_body) 1. Sign in as described in Accessing the Client Portal and navigate to **My Account** > **Account management**. The **Account management** page appears. ![download-your-account-statement-flow-1.png](image/16763ca3f5d54e.png) 2. Tap the **Download account statement** button in the middle right corner of the upper banner. The **Download account statement** dialog box appears. ![download-your-account-statement-flow-2.png](image/16763ca3f6862a.png) 3. Select the Rapyd Wallet account. 4. Select the currency. 5. Select a day or range of dates. **Note**: Select the **use default** link to use the default date range of 1 year. 6. Tap **Download**. * A pop-up message confirms that your report is being processed. When your report is ready, Rapyd sends you a notification by email. * In the email message, tap **Get File**. * The file is downloaded to the **Downloads** folder on your local computer. ![download-your-account-statement-flow-3.png](image/16763ca3f72879.png) [##### Description of Fields](#idp250198_body) The following table describes the fields in the Account Statement Report: | Field | Description | | --- | --- | | Merchant Name | The name of the merchant associated with the account. | | Merchant Address | The address of the merchant associated with the account. | | Date Range Selected | The range of dates selected for the data set of the report. | | Currency Selected | The currency chosen for the report. | | Closing Balance | The final balance of the wallet for the time interval of the report. | | Created At | The date and time the transaction was created. | | Completed At | The date and time the transaction amount was deducted from the account balance. | | Description | Indicates a description of the balance activity. One of the following:

* Payment - The reference ID or description of the payment created by the merchant.

* Payout - The reference ID, statement descriptor, or description of the payout created by the merchant.

* Bank Transfer - The sender name.

* Issued Card Transaction - Point of Sale (POS) name and location. | | Amount Received | The amount of funds received into the wallet. | | Amount Sent | The amount of funds sent out of the wallet. | | Direction | The direction of the flow of funds. One of the following:

* In

* Out | | Exchange Rate | The exchange rate associated with the payments, payouts, bank transfer, or issued card authorization. | | Balance After Transaction | The balance of the wallet after each transaction listed in the report. | In this section: Search results -------------- No results found * [Prev](managing-your-user-profile.html#idp250124) * [Next](downloading-your-account-statement.html#idp250153) --- # Creating a Virtual Account [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Virtual Accounts](virtual-accounts-410712.html) * Creating a Virtual Account * [Prev](virtual-accounts-410712.html#idp261771) * [Next](creating-a-virtual-account.html#idp261782) #### Creating a Virtual Account You can create multiple Virtual Accounts. Your company can use Virtual Accounts to collect, hold, and move funds. You must have Owner or Administrator privileges to create a Virtual Account. [##### How to Add a Virtual Account](#idp261782_body) ### Activate Your Virtual Account To successfully create your first Virtual Account, [Contact Support](mailto:https://support@rapyd.net) for your request. To view a virtual account: 1. Sign in to Client Portal as described in [Signing in to the Client Portal](signing-in-to-the-client-portal.html "Signing In to the Client Portal") and navigate to **My Account** > **Account management**. The **Account management** page appears. ![648088d3649c9.png](image/16763ca5135bc1.png) 2. To add your virtual account, tap **\+ Create virtual account** in the **Virtual Accounts** section. ![648088d5e89ab.png](image/16763ca513ea0b.png) 3. The **Add virtual account** window appears. 4. Enter the account name. ![create-virtual-account-flow-3.png](image/16763ca51497b4.png) **Note**: Your account will need to be activated to successfully create a Virtual Account. 5. Click **Next**. ![create-virtual-account-flow-4.png](image/16763ca515282a.png) 6. Select the country for your virtual account in the drop-down menu. 7. Select the **requested currency** from the drop-down menu. 8. Click **Create**. ### Requested Currencies for Virtual Accounts 1. The funds transferred to Virtual Accounts can now be automatically converted using FX (Foreign Exchange) into a different currency. All supported currencies can be converted with FX. 2. An FX conversion fee will be applied during the transfer. 3. Selecting a requested currency has no impact on the currencies the Virtual Account can receive. [##### Editing Requested Currencies for Virtual Accounts](#idp261840_body) The funds transferred to a Virtual Account can be converted using FX through the requested currency. The requested currency is what the funds will be converted into during the transfer. The requested currency can be edited for existing Virtual Accounts. To edit the requested currency: 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **My Account** > **Account management**. The **Account management** page appears. 2. Hover over a Virtual IBAN row in the Virtual Accounts section. * (Optional): Click on the **View details** icon. * (Optional): The Virtual Account details panel appears. ![create-virtual-account-flow-5.png](image/16763ca515bc6d.png) * (Optional): Click the **Update requested currency** link. Skip to Step 4. 3. Click the **Update requested currency** icon. ![create-virtual-account-flow-6.png](image/16763ca51656a6.png) 4. The **Update requested currency** window appears. ![create-virtual-account-flow-7.png](image/16763ca516f6e0.png) 5. Select the currency from the drop-down menu. 6. Click **Update**. In this section: Search results -------------- No results found * [Prev](virtual-accounts-410712.html#idp261771) * [Next](creating-a-virtual-account.html#idp261782) --- # Approving Payouts [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Disburse](disburse.html) * Approving Payouts * [Prev](viewing-payout-details.html#idp257875) * [Next](approving-payouts.html#idp257937) #### Approving Payouts Approve a payout using the Client Portal. You can approve a payout using the Client Portal. A user linked to your account can submit a payout. The Owner or Administrator of the account can then review the payout and approve it. Users that have a custom role with that permission can also approve payouts. ### User Permissions This procedure requires **Owner** or **Administrator** privileges to approve payouts. The linked user must have the role of **Editor** or a custom role to submit payouts for approval. A user role can have the following permissions for payouts: **approve only**, **submit only**, or **both**. See [Creating a New User Role](creating-a-new-user-role.html "Creating a New User Role") for more information. [##### Submitting a Payout for Approval](#idp257937_body) **Note**: For more detailed information about how to create a payout, see [Create a Payout](create-a-payout.html "Create a Payout") . 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Disburse** > **Payouts** > **Create Payout**. ![approve-payouts-flow-1.png](image/16763ca4bd5603.png) 2. The **Payout Details** page appears. ![approve-payouts-flow-2.png](image/16763ca4bde6a7.png) 3. Enter the required fields for the payout. 4. Click **Next**. 5. The **Payout Method** page appears. ![approve-payouts-flow-3.png](image/16763ca4be772a.png) 6. Select the payout method type and tap **Next**. 7. The **Beneficiary details** page appears. ![approve-payouts-flow-4.png](image/16763ca4bf158f.png) 8. Enter the beneficiary details and sender details. Tap **Next**. 9. The **Confirmation** page appears. ![approve-payouts-flow-5.png](image/16763ca4c0fc79.png) 10. Check the **I confirm the payout details above** checkbox. 11. Tap the **Submit for approval** button. 12. The success window appears. ![approve-payouts-flow-6.png](image/16763ca4c1909a.png) 13. The Payout appears under **Disburse** > **Payouts** > **Payout Approval** with a status of **Pending**. [##### Approving the Payout](#idp258004_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Disburse** > **Payouts** > **Payout approval**. 2. Select the row of the payout you would like to approve. ![approve-payouts-flow-7.png](image/16763ca4c21b44.png) 3. The payout review panel appears. ![approve-payouts-flow-8.png](image/16763ca4c2ced1.png) 4. Tap **Approve payout**. **Note**: You can subscribe to receive a notification when a payout is submitted as a draft for approval. See [Viewing Notifications](viewing-notifications.html "Viewing Notifications") for more details. In this section: Search results -------------- No results found * [Prev](viewing-payout-details.html#idp257875) * [Next](approving-payouts.html#idp257937) --- # Bank Payout Ukraine [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payout Method Types](payout-method-types.html) * [EMEA](emea-401604.html) * Bank Payout Ukraine * [Prev](bank-payout-bulgaria.html#idp241173) * [Next](bank-payout-ukraine.html#idp241224) ##### Bank Payout Ukraine Disburse funds directly to a bank account. | `Enterprise` **ua\_local\_bank** is a new bank payout method type used for payouts in Ukraine. A sender can disburse funds into a beneficiary’s bank account in Ukraine. This payout method supports local bank transfers and allows the beneficiary to be paid in Ukraine Hryvnia (UAH). The benefits for the user include the ability to create cross-border payouts and disburse funds into Ukrainian bank accounts. [###### Finding Required Fields for the Payout Method Type](#idp241224_body) You need to find the required fields for each payout method type. For that, you'll use [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields") . Enter **ua\_local\_bank** as the value for the `payout_method_type` path parameter. ### Mass Payouts Supported Mass payouts can be completed with **ua\_local\_bank** using a mass payouts file via SFTP (SSH FIle Transfer Protocol). See [Mass Payouts Overview](mass-payouts-overview.html "Mass Payouts Overview") for more information about mass payouts. [###### Requesting a Payout](#idp241236_body) Use [Create Payout](create-payout.html "Create Payout") with the following parameters: Create Payout Request Parameters | | | | --- | --- | | **Body Parameter** | **Description** | | ewallet | Enter the wallet 'id' that you received when you created the company wallet in your sandbox. | | payout\_amount | Enter 100 as the amount received by the beneficiary. | | payout\_method\_type | Enter **ua\_local\_bank** as the payout method type. | | sender\_currency | Enter **USD** as the code for United States Dollar, the sender's currency. | | sender\_country | Enter **US** as the code for the United States, the sender's country. | | beneficiary\_country | Enter **UA** as the code for Ukraine, the beneficiary's country. | | payout\_currency | Enter **UAH** as the code for Ukraine Hryvnia, the currency received by the beneficiary. | | sender\_entity\_type | Enter ‘individual’ as the type of entity for the sender. | | beneficiary\_entity\_type | Enter ‘individual’ as the type of entity for the beneficiary. | | beneficiary | Enter a 'beneficiary' object that has the following fields:

* **first\_name**

* **last\_name**

* **iban**

* **phone\_number** | | sender | Enter a 'sender' object that has the following fields:

* **company\_name** - company

* **identification\_type** - company

* **identification\_value** - individual or company

* **first\_name** - individual

* **last\_name** - individual

* **address** - individual or company

* **city** - individual or company

* **phone\_number** - individual or company | | description | Enter 'salary payout - wallet to bank account' as the description of the payout transaction. | [###### Create Payout Response](#idp241356_body) [Create Payout](create-payout.html "Create Payout") describes the fields in the response. [###### Local Bank Payout Ukraine Details](#idp241360_body) | | | | --- | --- | | **Details** | **Description** | | Payout Method Category | bank | | Payout Request String | POMT = ua\_local\_bank | | Country | Ukraine | | Sender Currency | ISK, USD, GBP, EUR, SGD, HKD, AUD | | Transaction Limits | N/A | | Settlement Timeframe | Same day | In this section: Search results -------------- No results found * [Prev](bank-payout-bulgaria.html#idp241173) * [Next](bank-payout-ukraine.html#idp241224) --- # Failed Payments Report [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Reports](reports-367106.html) * Failed Payments Report * [Prev](downloading-a-financial-report.html#idp264657) * [Next](failed-payments-report.html#idp264681) #### Failed Payments Report Download Custom Reports in Client Portal. The Failed Payments report contains the data for all the failed payments associated with your Client Portal account. The generated report is in CSV format. [##### How to Download a Failed Payments Report](#idp264681_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Reports** > **Custom Reports**. The **Custom reports** page appears. ![failed-payments-report-flow-1.png](image/16763ca5547c30.png) 2. Scroll down to the **Failed Payment Report**. 3. Click the **Generate report** button on the right side of the row. ![failed-payments-report-flow-2.png](image/16763ca555141b.png) 4. The **Generate failed payments report** dialog box appears. ![failed-payments-report-flow-3.png](image/16763ca555a314.png) 5. Select the date range for the report. **Note**: The maximum period of time you can select is 31 days. 6. Tap **Generate report**. 7. The success window appears. ![failed-payments-report-flow-4.png](image/16763ca5563b2d.png) 8. You will receive an email containing the report. Download the report to your computer. In this section: Search results -------------- No results found * [Prev](downloading-a-financial-report.html#idp264657) * [Next](failed-payments-report.html#idp264681) --- # Creating a Wallet [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Wallets](wallets.html) * Creating a Wallet * [Prev](viewing-details-of-a-wallet.html#idp259250) * [Next](creating-a-wallet.html#idp259350) #### Creating a Wallet You can create a wallet within the Client Portal for a business or personal contact. [##### How to Create a Wallet](#idp259350_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Wallets** > **Wallets**. The **Wallets** page appears. ![create-wallet-flow-1.png](image/16763ca4d6eaab.png) 2. Select **Create Wallet**. The **Create wallet** menu appears. ![create-wallet-flow-2.png](image/16763ca4d78e92.png) 3. Select **Business wallet** or **Personal wallet**. The corresponding dialogue box appears. ###### Creating a Personal Wallet 1. Complete the fields in the **Wallet Details** section: * First Name - First name of the primary wallet contact. * Last name - Last name of the primary wallet contact. * Email - email of the wallet contact. * Country Code - Short numeric code to identify a specific country used for communications. * Mobile Number - phone number of the contact. * Reference ID - The unique identifier assigned by the merchant. * Contact Reference ID - Unique identifier of the contact. * Country - Country of the contact. * Date of Birth - Date of birth of the contact. * Gender - Gender of the contact. * Nationality - Nationality of the contact. * Identification Type - Document verifying the identity of the contact. * Identification Number - Number associated with your identification document (license, passport, visa, etc.) ![create-wallet-flow-3.png](image/16763ca4d82d95.png) 2. Select **Contact address**. The contact address fields appear. 3. Complete the contact address fields. **Note**: Contact Required Fields - The Name, Country, and Street Address 1 are required fields when creating a Wallet in the Client Portal. 4. Click **Create Wallet**. The create wallet dialogue box appears. ![create-wallet-flow-4.png](image/16763ca4d8d347.png) ###### Creating a Business Wallet 1. Complete the fields in the **Wallet Details** section: * Company name - Name of the company * Email - email of the wallet contact. * Country Code - Short numeric code to identify a specific country used for communications. * Mobile Number - phone number of the contact. * Reference ID - the unique identifier assigned by the merchant. ![create-wallet-flow-5.png](image/16763ca4d9659d.png) 2. (Optional) Complete the fields in the **Business Details** section: * Name - name of the business. * Registration number - unique number associated with the company registration. * Date of establishment - date of the company registration. * Entity type - type of business entity. 3. Complete the fields in the **Contact Details** section: * Contact Reference ID - Unique identifier of the contact. * First Name - First name of the primary business contact. * Last name - Last name of the primary business contact. * Email - email of the primary business contact. * Country - Country of the contact. * Date of Birth - Date of birth of the contact. * Nationality - Nationality of the contact. * Identification Type - Document verifying the identity of the contact. * Identification Number - Number associated with your identification document (license, passport, visa, etc.) * Gender - Gender of the contact. 4. Select **Contact Address**. The contact address fields appear. **Note**: Business Contact Required Fields - The Name, Country, and Street Address 1 are required fields when creating a Wallet in the Client Portal. 5. Complete the contact address fields. 6. Click **Create Wallet**. The create wallet dialogue box appears. ![create-wallet-flow-6.png](image/16763ca4da0f30.png) In this section: Search results -------------- No results found * [Prev](viewing-details-of-a-wallet.html#idp259250) * [Next](creating-a-wallet.html#idp259350) --- # Order Cards via Client Portal [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Issuing](issuing.html) * Order Cards via Client Portal * [Prev](downloading-an-issued-cards-report.html#idp260976) * [Next](order-cards-via-client-portal.html#idp260990) #### Order Cards via Client Portal Rapyd enables clients that use Rapyd Issuing to order a new batch of physical cards via Client Portal. Once you are approved for Rapyd Issuing, you can order cards by going to **Issuing** > **Card Orders**. ### KYB Approval for Rapyd Issuing: Cards Before requesting cards, your client account needs KYB approval (account activation) for Rapyd Issuing. Rapyd Issuing is supported in specific countries. Contact your Rapyd sales representative for details. [##### Order Cards via Client Portal Workflow](#idp260990_body) 1. Navigate to **Issuing** > **Card orders**. The **Card orders** page appears. ![64808bb034f2f.png](image/16763ca4f68360.png) 2. To begin ordering cards, tap the **Order Cards** button. The **Order cards** dialog box appears. 3. Select the number of cards to be ordered and the card program. Tap **Next**. ![order-cards-flow-2.png](image/16763ca4faea53.png) 4. Enter the delivery address for the order. Tap **Next**. ![order-cards-flow-3.png](image/16763ca4fb821c.png) 5. Enter the information for the contact person. ![order-cards-flow-4.png](image/16763ca4fc18a1.png) 6. Complete the required fields and select **Order cards**. 7. The success window appears. ![order-cards-flow-5.png](image/16763ca4fcb358.png) 8. The ordered cards should appear in the top row of the **Card orders** page. ### Prerequisite: Card Program When requesting cards the user must include the card program from which they want to order a card. Different card programs will be issued for each country. To request a card program, contact your Rapyd sales representative. 9. Select the row of your card order. The **Card order details** panel appears. ![64808bb40e17d.png](image/16763ca4fd4be8.png) Possible statuses of card order include: * Created * Pending * Out for delivery * Delivered * Active * Rejected In this section: Search results -------------- No results found * [Prev](downloading-an-issued-cards-report.html#idp260976) * [Next](order-cards-via-client-portal.html#idp260990) --- # Viewing Subscription Invoice Details [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Collect](collect.html) * [Subscriptions](subscriptions-479259.html) * Viewing Subscription Invoice Details * [Prev](listing-subscription-invoices.html#idp256305) * [Next](viewing-subscription-invoice-details.html#idp256359) ##### Viewing Subscription Invoice Details You can view details of a specific subscription invoice. `beta` This feature is in **closed beta**. You can contact the Rapyd Support team if you wish to join the closed beta program. [###### How to View Subscription Invoice Details](#idp256359_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Collect** > **Subscriptions** > **Invoices** . The **Subscription Invoices** page appears. 2. Hover over the row that contains the subscription you want to view and then click on the row. ![64808aa5eaa71.png](image/16763ca49ad6df.png) 3. The following panel appears: ![subscription-invoice-details-flow-2.png](image/16763ca49c2421.png) For a description of the information displayed, see [Listing Subscription Invoices](listing-subscription-invoices.html "Listing Subscription Invoices") . [###### Updating a Subscription Invoice Payment Method](#idp256382_body) 1. To update the payment method for a subscription, click **Update Card** at the bottom of the Subscription Invoice Details panel. 2. The **Add Card** window appears. ![subscription-invoice-details-flow-3.png](image/16763ca49cc6b0.png) 3. Update the customer’s payment method information. 4. Click **Submit**. [###### Request Card Details](#idp256399_body) You request card details by generating a hosted page to copy the link and send to a customer. 1. In the **Invoice Details** Panel, click **Request Card Details** at the bottom. The **Request card details** dialogue box appears. 2. Select the designated country for the customer. 3. Click **Create hosted page**. The **Card tokenization page created** dialogue box appears. 4. Copy the URL to send it to the customer. ![subscription-invoice-details-flow-4.png](image/16763ca49d5391.png) [###### Downloading a Subscription Invoice PDF](#idp256421_body) 1. Hover over the row that contains the subscription you want to view. 2. Click the row. 3. On the details panel, select **Download Invoice**. **Note**: You can also select **Download Invoice** from the full Subscription Details page. The invoice will download to your designated downloads folder. 4. Click on the downloaded file on your local drive to open. The PDF invoice will have the following information: * Business name - matches your legal business name listed in your Client Portal account under **Settings** > **Account Details**. * Business address - Lists a designated business address including address line, city, state/territory, country and zip **Note**: A merchant can only have 1 listed address. * Issued to - Customer name the invoice was billed to * Status - status of the invoice from paid, draft, or open. * Billing Period - The date range that the customer is billed for. * Plan - the name of the subscription pricing plan. * Payment Method with last 4 digits - Format of Visa \*\*\*\*1111 * Date paid - date of the transaction * Quantity - amount of subscription plans the invoice includes * Amount - total payment with currency ![subscription-invoice-details-flow-6.png](image/16763ca49de9f7.png) In this section: Search results -------------- No results found * [Prev](listing-subscription-invoices.html#idp256305) * [Next](viewing-subscription-invoice-details.html#idp256359) --- # APAC [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payout Method Types](payout-method-types.html) * APAC * [Prev](rendimento.html#idp237894) * [Next](apac-394671.html#idp238268) #### APAC Payout methods for the Asia-Pacific region. [##### APAC Supported Countries](#idp238268_body) Australia, Hong Kong, India, Indonesia, Japan, Malaysia, New Zealand, Philippines, Singapore, South Korea, Taiwan, Thailand, Vietnam. Asia Pacific Payout Methods en/bank-payout-malaysia.html Bank Payout Malaysia A popular bank payout used in Malaysia. en/bank-payout-japan.html Bank Payout Japan A popular bank payout used in Japan. en/bank-payout-indonesia.html Bank Payout Indonesia A popular bank payout used in Indonesia. In this section: Search results -------------- No results found * [Prev](rendimento.html#idp237894) * [Next](apac-394671.html#idp238268) --- # Create a Sender [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Disburse](disburse.html) * Create a Sender * [Prev](listing-senders.html#idp258457) * [Next](create-a-sender.html#idp258564) #### Create a Sender Create a Sender using the Client Portal. You can create a sender right from the Client Portal by logging in and going to **Disburse** > **Senders** > **Create Sender**. **Note**: This procedure requires Owner or Administrator privileges. [##### How to Create a Sender](#idp258564_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Disburse** > **Senders**. The Senders page appears. ![create-sender-flow-1.png](image/16763ca4cb67eb.png) 2. Click **Create sender**. The Create sender dialog box appears. ![create-sender-flow-2.png](image/16763ca4cbfa9e.png) ###### Entity Type 1. Complete the Entity type by choosing Individual or Business. 2. Select the Country and Currency of the Sender. ###### Beneficiary Entity Type 1. Complete the Beneficiary entity type that would receive from the sender as an Individual or Business. 2. Select the Beneficiary country and currency. 3. Select the payout category. **Note**: The payout category is the method that the beneficiary would like to receive their funds. 4. Click **Next**. ###### Sender Details **Note**: The sender details will vary according to the required fields of the payout method. Complete the sender details including the following: * First Name - (Sender is an individual) * Last name - (Sender is an individual) * Company Name - (Sender is a business) * Reference ID * Date of Birth * Country Code & Mobile Number * Address * City * Post Code The Sender Created dialogue box appears. ### View Sender On the sender created dialogue box, tap View Sender to view the specific sender details. In this section: Search results -------------- No results found * [Prev](listing-senders.html#idp258457) * [Next](create-a-sender.html#idp258564) --- # Create a Beneficiary [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Disburse](disburse.html) * Create a Beneficiary * [Prev](listing-beneficiaries.html#idp258035) * [Next](create-a-beneficiary.html#idp258153) #### Create a Beneficiary Create a Beneficiary using the Client Portal. You can create a beneficiary right from the Client Portal by logging in and going to **Disburse** > **Beneficiaries** > **Create Beneficiary**. A single beneficiary can be used for multiple payouts. **Note**: This procedure requires Owner or Administrator privileges. [##### How to Create a Beneficiary](#idp258153_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Disburse** > **Beneficiaries**. The Beneficiaries page appears. ![create-beneficiary-flow-1.png](image/16763ca4c46157.png) 2. Click **Create beneficiary**. The Create new beneficiary dialog box appears. ![create-beneficiary-flow-2.png](image/16763ca4c50089.png) ###### Entity Type 1. Complete the Entity type by choosing Individual or Business. 2. Select the Country and Currency of the Beneficiary. ###### Sender Entity Type 1. Complete the Sender entity type as an Individual or Business that would payout to the beneficiary. 2. Select the Sender country and currency. 3. Select the payout category. 4. Choose the payout method type sent to the beneficiary. **Note**: The payout method is relevant for the sender to send the payout to the beneficiary. 5. Click **Next**. ###### Beneficiary Details **Note**: The beneficiary details will vary according to the required fields of the payout method. Complete the beneficiary details including the following: * First Name - (Beneficiary is an individual) * Last name - (Beneficiary is an individual) * Company Name - (Beneficiary is a business) * Account Number * Sort Code * Reference ID **Note**: The Reference ID is defined by the merchant to identify their beneficiaries. ![create-beneficiary-flow-3.png](image/16763ca4c59ea7.png) The Beneficiary Created dialogue box appears. ### View Beneficiary On the beneficiary created dialogue box, tap View Beneficiary to view the specific beneficiary details. In this section: Search results -------------- No results found * [Prev](listing-beneficiaries.html#idp258035) * [Next](create-a-beneficiary.html#idp258153) --- # SWIFT Payout [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payout Method Types](payout-method-types.html) * SWIFT Payout * [Prev](card-payout.html#idp235730) * [Next](swift-payout.html#idp235920) #### SWIFT Payout A fast way to move funds to a bank account using SWIFT | `Enterprise` A Payout can send money from Rapyd to a beneficiary. Use the Swift Transfer payout method, or **xx\_swift\_bank** to wire transfer funds to a beneficiary with an international bank account in the SWIFT network. Common use cases may include: * Wire payout to an international employee's bank account. * Wire payout to a supplier in another country (B2B). [##### What is Regex?](#idp235920_body) Regex, is a regular expression that defines the format when `type` is **string**. Regex can manage and match characters in strings. Rapyd employs a unique variant of regex. Note the following differences: * A single backslash is treated as matching a backslash as an ordinary character. * A backslash followed by an alphabetic character matches as a string of two characters. * To match a special character such as **\\n**, you must write **\\\\n**. [##### Payout to Bank Account Workflow](#idp235934_body) Using the Wire payment method (**xx\_swift\_bank**) and the corresponding required fields that beneficiaries fill out is described under How it Works. ### Note A Payout requires a sender and a beneficiary as described in [Reusing Beneficiary or Sender](reusing-beneficiary-or-sender.html "Reusing Beneficiary or Sender") . ###### Step 1 - Getting Payout Information ![list-payments.jpg](image/16763ca3a4a4ce.jpg) 1. You request to List Payout Methods by Country to get supported payout methods. 2. Rapyd returns the list of supported payout types. 3. You call Get Payout Method Required Fields to get required fields to be completed. 4. Rapyd returns the list of required fields to be passed for processing. ###### Step 2 - Processing the Payout ![process-payouts.jpg](image/16763ca3a53607.jpg) 1. You call Create Payout and pass required fields. 2. Rapyd processes the payout to the bank—and sends a response. 3. Bank credits the beneficiary’s account. 4. Rapyd sends notification of completed Payout. [##### How SWIFT Payouts Works](#idp235969_body) ### Prerequisites To run the examples of this use case, you must create the following ID in your own sandbox: * ewallet - Run [Creating a Rapyd Wallet](creating-a-rapyd-wallet.html "Creating a Rapyd Wallet") for the company wallet. Use the 'id' you get in the response. [###### Finding Payout Method Types](#idp235978_body) For the payout page on your website, you need to find payout method types that match your criteria, such as the payout country and currency. For that, you'll use [List Payout Method Types](list-payout-method-types.html "List Payout Method Types") with the following parameters: Description of Parameters | | | | --- | --- | | Query Parameter | Description | | category | Enter bank as the category of the payout method. | | beneficiary\_country | Enter **GB** as the code for the United Kingdom, the beneficiary's country. | | payout\_currency | Enter **GBP** as the code for British Pound sterling, the currency received by the beneficiary. | ###### List Payout Method Types Request You ask for a list of all available bank payout method types for transfers in the SWIFT network using **GBP** . * * Request * // Request URL: GET https://sandboxapi.rapyd.net/v1/payout\_methods?beneficiary\_country=GB&payout\_currency=GBP // Message body absent ###### List Payout Method Types Response Let's take a look at the response. A real response usually lists many payout methods. * * Response * { "payout\_method\_type": "xx\_swift\_bank", "name": "Global SWIFT", "is\_cancelable": 0, "is\_expirable": 0, "is\_location\_specific": 0, "status": 1, "image": "/checkout/xx\_swift\_bank.png", "category": "bank", "beneficiary\_country": "GB", "sender\_country": "\*", "payout\_currencies": \[\ "GBP"\ \], "sender\_entity\_types": \[\ "company"\ \], "beneficiary\_entity\_types": \[\ "company",\ "individual"\ \], "amount\_range\_per\_currency": \[\ {\ "maximum\_amount": null,\ "minimum\_amount": null,\ "payout\_currency": "GBP"\ }\ \], "minimum\_expiration\_seconds": null, "maximum\_expiration\_seconds": null, "sender\_currencies": \[\ "USD",\ "SGD",\ "SEK",\ "NOK",\ "ISK",\ "HKD",\ "GBP",\ "EUR",\ "DKK",\ "CHF",\ "CAD",\ "AUD"\ \], "estimated\_time\_of\_arrival": "An estimated receipt time is not yet available for this payout method" }, [###### Sender Currencies](#idp236035_body) The **xx\_swift\_bank** payout method has a list of supported sender currencies. When the sender disburses funds to the beneficiary, they can use a number of different supported currencies. The beneficiary can then accept the funds in the same currency, or in a different currency. If a beneficiary accepts the funds in a different currency from the sender, then FX (foreign exchange) will convert the funds to the desired currency. The sender currencies for the payout method are listed in the List Payout Method Types response above. **Note**: If the payout is created with an unsupported sender currency, the payout will fail. Supported Sender Currencies SWIFT | | | | --- | --- | | USD | GBP | | SGD | EUR | | SEK | DKK | | NOK | CHF | | ISK | CAD | | HKD | NZD | | AUD | | [###### Finding Required Fields for the Payout Method Type](#idp236084_body) You need to find the required fields for the **xx\_swift\_bank** payout method type. For that, you'll use [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields") with the following parameters: Description of Path Parameters | | | | --- | --- | | Path Parameter | Description | | payout\_method\_type | Enter **xx\_swift\_bank** as the payout method type. | Description of Query Parameters | | | | --- | --- | | Query Parameter | Description | | sender\_country | Enter **FR** as the code for France, the sender's country. | | sender\_currency | Enter **EUR** as the code for Euros, the sender's currency. | | beneficiary\_country | Enter **GB** as the code for the United Kingdom,, the beneficiary's country. | | payout\_currency | Enter **GBP** as the code for British Pound sterling, the currency received by the beneficiary. | | sender\_entity\_type | Enter 'company' as the type of entity for the sender. | | beneficiary\_entity\_type | Enter 'individual' as the type of entity for the beneficiary. | | payout\_amount | Enter 3000 as the amount received by the beneficiary. | ###### Get Payout Required Fields Request You ask for the set of required fields for the **xx\_swift\_bank** payout method type. * * Request * // Request URL: GET https://sandboxapi.rapyd.net/v1/payout\_methods/xx\_swift\_bank/required\_fields?sender\_country=FR&sender\_currency=EUR&beneficiary\_country=GB&payout\_currency=GBP&sender\_entity\_type=company&beneficiary\_entity\_type=individual&payout\_amount=3000 // Message body absent ###### Get Payout Required Fields Response Let's take a look at the response. * * Response * "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "6f8a3c1d-504f-4b9d-9b60-a83164c3053f" }, "data": { "payout\_method\_type": "xx\_swift\_bank", "sender\_currency": "EUR", "sender\_country": "\*", "sender\_entity\_type": "company", "beneficiary\_country": "GB", "payout\_currency": "GBP", "beneficiary\_entity\_type": "individual", "is\_cancelable": 0, "is\_location\_specific": 0, "is\_expirable": 0, "minimum\_expiration\_seconds": null, "maximum\_expiration\_seconds": null, "is\_online": null, "image": "/checkout/xx\_swift\_bank.png", "status": 1, "beneficiary\_required\_fields": \[\ {\ "name": "first\_name",\ "regex": "^.{1,20}",\ "is\_required": true,\ "type": "string",\ "description": "First name + Last name must not exceed 35 characters"\ },\ {\ "name": "last\_name",\ "regex": "^.{1,15}",\ "is\_required": true,\ "type": "string",\ "description": "First name + Last name must not exceed 35 characters"\ },\ {\ "name": "address",\ "regex": "^.{1,35}",\ "is\_required": true,\ "type": "string",\ "description": "Beneficiary street name ; building number"\ },\ {\ "name": "city",\ "regex": "^.{1,25}",\ "is\_required": true,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "state",\ "regex": "^.{1,15}",\ "is\_required": false,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "country",\ "regex": "^\[A-Z\]{2}$",\ "is\_required": true,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "postcode",\ "regex": "^.{1,10}",\ "is\_required": false,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "account\_number",\ "regex": "^.{1,34}$",\ "is\_required": true,\ "type": "string"\ },\ {\ "name": "bic\_swift",\ "regex": "^.{8,11}$",\ "is\_required": true,\ "type": "string"\ }\ \], "sender\_required\_fields": \[\ {\ "name": "company\_name",\ "regex": "^.{1,35}",\ "is\_required": true,\ "type": "string"\ },\ {\ "name": "address",\ "regex": "^.{1,35}",\ "is\_required": true,\ "type": "string",\ "description": "Beneficiary street name ; building number"\ },\ {\ "name": "city",\ "regex": "^.{1,25}",\ "is\_required": true,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "state",\ "regex": "^.{1,15}",\ "is\_required": false,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "country",\ "regex": "^\[A-Z\]{2}$",\ "is\_required": true,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "postcode",\ "regex": "^.{1,10}",\ "is\_required": false,\ "type": "string",\ "description": "The combined length of city+state+country+postcode must not exceed 32 characters"\ },\ {\ "name": "purpose\_code",\ "regex": "investment\_income|salary|insurance\_payments|computer\_services|educational\_services|payment\_of\_goods|payment\_of\_services|Inward\_remittance",\ "is\_required": false,\ "type": "string",\ "allowed\_values": \[\ "investment\_income",\ "salary",\ "insurance\_payments",\ "computer\_services",\ "educational\_services",\ "payment\_of\_goods",\ "payment\_of\_services",\ "Inward\_remittance"\ \],\ "description": "Required only for sending to - China, India, South Korea, Philippines, Malaysia"\ }\ \], "payout\_options": \[\ {\ "name": "beneficiary\_country",\ "regex": "^\[A-Z\]{2}$",\ "is\_required": true,\ "type": "string",\ "description": "Country where the beneficiary account is held"\ },\ {\ "name": "description",\ "regex": "^.{1,140}",\ "is\_required": true,\ "type": "string",\ "description": "Payout purpose description"\ },\ {\ "name": "statement\_descriptor",\ "regex": "^.{1,140}",\ "is\_required": false,\ "type": "string",\ "description": "Information to be displayed in the beneficiary statement"\ }\ \], "minimum\_amount": null, "maximum\_amount": null, "batch\_file\_header": "payout\_method\_type,sender\_currency,payout\_currency,beneficiary.first\_name,beneficiary.last\_name,beneficiary.address,beneficiary.city,beneficiary.state,beneficiary.country,beneficiary.postcode,beneficiary.account\_number,beneficiary.bic\_swift,sender.company\_name,sender.address,sender.city,sender.state,sender.country,sender.postcode,sender.purpose\_code" } The `data` section of this response shows required fields for **xx\_swift\_bank**. You will use the required fields for the 'beneficiary' and 'sender' objects when you ask Rapyd to process the payout: Description of Fields | | | | --- | --- | | Beneficiary | Sender | | first\_name | company\_name | | last\_name | address | | address | city | | city | country | | country | purpose code (See [Purpose Code](swift-payout.html "SWIFT Payout")
.) | | postcode | | | account\_number | | | bic\_swift | | ### Tip Use [Validate Beneficiary](validate-beneficiary.html "Validate Beneficiary") to check the beneficiary fields before you request the payout. See [Validating Beneficiary Details](validating-beneficiary-details.html "Validating Beneficiary Details") . [###### Required Fields By Country](#idp236238_body) The following tables list the requirements for the required fields, specific to each country. The fields used in the **xx\_swift\_bank** payout method are standardized. But each country has different requirements for the payout required fields information. ### Field Length Limitations The beneficiary and sender have a character limit for the following fields: city, state, country, and postcode. The combined length of the fields can use a maximum of 32 characters for the sender, and a maximum of 32 characters for the beneficiary. Supported Characters The supported characters for the `first_name` , `last_name`, `address`, and `description` fields are: * a-z, * A-Z, * 0-9 * Special characters: / -? : ( ) . , ' + * space character The following tables list the requirements for the required fields, specific to each country. United Kingdom (GB) | | | | | --- | --- | --- | | Object | Parameter | Description | | beneficiary\_required\_fields | first\_name | Enter the first name of the beneficiary | | beneficiary\_required\_fields | last\_name | Enter the last name of the beneficiary | | beneficiary\_required\_fields | address | Enter the address of the beneficiary | | beneficiary\_required\_fields | city | Enter the city of the beneficiary | | beneficiary\_required\_fields | country | Enter the country of the beneficiary | | beneficiary\_required\_fields | postcode | Enter the postcode of the beneficiary | | beneficiary\_required\_fields | account\_number | Use an IBAN for the beneficiary `account_number` field | | beneficiary\_required\_fields | bic\_swift | Use BIC 11 (including branch details) for the beneficiary `bic_swift` field | | sender\_required\_fields | company\_name | Enter the company name of the sender | | sender\_required\_fields | address | Enter the address of the sender | | sender\_required\_fields | city | Enter the city of the sender | | sender\_required\_fields | country | Enter the country of the sender | | sender\_required\_fields | purpose\_code | This field is not required for this country | | payout\_options | beneficiary\_country | Enter the country of the beneficiary | | payout\_options | description | Enter the purpose of the payment. Up to 35 characters. | | payout\_options | statement\_descriptor | This field is not required for this country | Singapore (SG) | | | | | --- | --- | --- | | Object | Parameter | Description | | beneficiary\_required\_fields | first\_name | Enter the first name of the beneficiary | | beneficiary\_required\_fields | last\_name | Enter the last name of the beneficiary | | beneficiary\_required\_fields | address | Enter the address of the beneficiary | | beneficiary\_required\_fields | city | Enter the city of the beneficiary | | beneficiary\_required\_fields | country | Enter the country of the beneficiary | | beneficiary\_required\_fields | postcode | Enter the postcode of the beneficiary | | beneficiary\_required\_fields | account\_number | Enter the account number | | beneficiary\_required\_fields | bic\_swift | Enter the BIC information | | sender\_required\_fields | company\_name | Enter the company name of the sender | | sender\_required\_fields | address | Enter the address of the sender | | sender\_required\_fields | city | Enter the city of the sender | | sender\_required\_fields | country | Enter the country of the sender | | sender\_required\_fields | purpose\_code | This field is not required for this country | | payout\_options | beneficiary\_country | Enter the country of the beneficiary | | payout\_options | description | Enter the purpose of the payment. Up to 35 characters. | | payout\_options | statement\_descriptor | This field is not required for this country | India (IN) | | | | | --- | --- | --- | | Object | Parameter | Description | | beneficiary\_required\_fields | first\_name | Enter the first name of the beneficiary | | beneficiary\_required\_fields | last\_name | Enter the last name of the beneficiary. This field can be left empty if the beneficiary only has one name. | | beneficiary\_required\_fields | address | Enter the address of the beneficiary | | beneficiary\_required\_fields | city | Enter the city of the beneficiary | | beneficiary\_required\_fields | country | Enter the country of the beneficiary | | beneficiary\_required\_fields | postcode | Enter the postcode of the beneficiary | | beneficiary\_required\_fields | account\_number | Cannot contain dashes, spaces, or any non-standard characters. | | beneficiary\_required\_fields | bic\_swift | Enter the BIC information. | | sender\_required\_fields | company\_name | Enter the company name of the sender | | sender\_required\_fields | address | Enter the address of the sender | | sender\_required\_fields | city | Enter the city of the sender | | sender\_required\_fields | country | Enter the country of the sender | | sender\_required\_fields | purpose\_code | This field is required for this country. See [Purpose Code](swift-payout.html "SWIFT Payout") | | payout\_options | beneficiary\_country | Enter the country of the beneficiary | | payout\_options | description | Enter the purpose of the payment. | | payout\_options | statement\_descriptor | The Legal Entity Identifier (LEI) must be present for transactions above 500,000 **INR** for both the beneficiary and sender. Format: ‘Rem LEI XXXXXXXXX Ben LEI XXXXXXXX’. | Thailand (TH) ### Note Transfers equal to or greater than **THB** 5 million require supporting documentation indicating the purpose and exact amount of each payment. Supporting documentation includes a copy of the invoice or payroll request, or a letter on signed letterhead describing the reason for transfer. | | | | | --- | --- | --- | | Object | Parameter | Description | | beneficiary\_required\_fields | first\_name | Enter the first name of the beneficiary | | beneficiary\_required\_fields | last\_name | Enter the last name of the beneficiary | | beneficiary\_required\_fields | address | Enter the address of the beneficiary | | beneficiary\_required\_fields | city | Enter the city of the beneficiary | | beneficiary\_required\_fields | country | Enter the country of the beneficiary | | beneficiary\_required\_fields | postcode | Enter the postcode of the beneficiary | | beneficiary\_required\_fields | account\_number | Enter the account number | | beneficiary\_required\_fields | bic\_swift | Enter the BIC information | | sender\_required\_fields | company\_name | Enter the company name of the sender | | sender\_required\_fields | address | Enter the address of the sender | | sender\_required\_fields | city | Enter the city of the sender | | sender\_required\_fields | country | Enter the country of the sender | | sender\_required\_fields | purpose\_code | This field is not required for this country | | payout\_options | beneficiary\_country | Enter the country of the beneficiary | | payout\_options | description | Enter the purpose of the payment. Up to 35 characters. | | payout\_options | statement\_descriptor | This field is not required for this country | Hong Kong (HK) | | | | | --- | --- | --- | | Object | Parameter | Description | | beneficiary\_required\_fields | first\_name | Enter the first name of the beneficiary | | beneficiary\_required\_fields | last\_name | Enter the last name of the beneficiary | | beneficiary\_required\_fields | address | Enter the address of the beneficiary | | beneficiary\_required\_fields | city | Enter the city of the beneficiary | | beneficiary\_required\_fields | country | Enter the country of the beneficiary | | beneficiary\_required\_fields | postcode | Enter the postcode of the beneficiary | | beneficiary\_required\_fields | account\_number | Enter the account number | | beneficiary\_required\_fields | bic\_swift | Enter the BIC information. | | sender\_required\_fields | company\_name | Enter the company name of the sender | | sender\_required\_fields | address | Enter the address of the sender | | sender\_required\_fields | city | Enter the city of the sender | | sender\_required\_fields | country | Enter the country of the sender | | sender\_required\_fields | purpose\_code | This field is not required for this country | | payout\_options | beneficiary\_country | Enter the country of the beneficiary | | payout\_options | description | Enter the purpose of the payment. Up to 35 characters. | | payout\_options | statement\_descriptor | This field is not required for this country | Malaysia (MY) | | | | | --- | --- | --- | | Object | Parameter | Description | | beneficiary\_required\_fields | first\_name | Enter the first name of the beneficiary | | beneficiary\_required\_fields | last\_name | Enter the last name of the beneficiary | | beneficiary\_required\_fields | address | Enter the address of the beneficiary | | beneficiary\_required\_fields | city | Enter the city of the beneficiary | | beneficiary\_required\_fields | country | Enter the country of the beneficiary | | beneficiary\_required\_fields | postcode | Enter the postcode of the beneficiary | | beneficiary\_required\_fields | account\_number | Enter the account number | | beneficiary\_required\_fields | bic\_swift | Enter the BIC information | | sender\_required\_fields | company\_name | Enter the company name of the sender | | sender\_required\_fields | address | Enter the address of the sender | | sender\_required\_fields | city | Enter the city of the sender | | sender\_required\_fields | country | Enter the country of the sender | | sender\_required\_fields | purpose\_code | This field is required for this country. See [Purpose Code](swift-payout.html "SWIFT Payout") | | payout\_options | beneficiary\_country | Enter the country of the beneficiary | | payout\_options | description | Enter the purpose of the payment. Up to 15 characters. | | payout\_options | statement\_descriptor | This field is not required for this country | Brazil (BR) | | | | | --- | --- | --- | | Object | Parameter | Description | | beneficiary\_required\_fields | first\_name | Enter the first name of the beneficiary | | beneficiary\_required\_fields | last\_name | Enter the last name of the beneficiary | | beneficiary\_required\_fields | address | Enter the address of the beneficiary | | beneficiary\_required\_fields | city | Enter the city of the beneficiary | | beneficiary\_required\_fields | country | Enter the country of the beneficiary | | beneficiary\_required\_fields | postcode | Enter the postcode of the beneficiary | | beneficiary\_required\_fields | account\_number | Use an IBAN for the beneficiary `account_number` field if available | | beneficiary\_required\_fields | bic\_swift | Enter the BIC information | | sender\_required\_fields | company\_name | Enter the company name of the sender | | sender\_required\_fields | address | Enter the address of the sender | | sender\_required\_fields | city | Enter the city of the sender | | sender\_required\_fields | country | Enter the country of the sender | | sender\_required\_fields | purpose\_code | This field is not required for this country | | payout\_options | beneficiary\_country | Enter the country of the beneficiary | | payout\_options | description | Enter the purpose of the payment. Up to 35 characters. | | payout\_options | statement\_descriptor | This field is not required for this country | Switzerland (CH) | | | | | --- | --- | --- | | Object | Parameter | Description | | beneficiary\_required\_fields | first\_name | Enter the first name of the beneficiary | | beneficiary\_required\_fields | last\_name | Enter the last name of the beneficiary | | beneficiary\_required\_fields | address | Enter the address of the beneficiary | | beneficiary\_required\_fields | city | Enter the city of the beneficiary | | beneficiary\_required\_fields | country | Enter the country of the beneficiary | | beneficiary\_required\_fields | postcode | Enter the postcode of the beneficiary | | beneficiary\_required\_fields | account\_number | Use an IBAN for the beneficiary `account_number` field if available | | beneficiary\_required\_fields | bic\_swift | Enter the BIC information | | sender\_required\_fields | company\_name | Enter the company name of the sender | | sender\_required\_fields | address | Enter the address of the sender | | sender\_required\_fields | city | Enter the city of the sender | | sender\_required\_fields | country | Enter the country of the sender | | sender\_required\_fields | purpose\_code | This field is not required for this country | | payout\_options | beneficiary\_country | Enter the country of the beneficiary | | payout\_options | description | Enter the purpose of the payment | | payout\_options | statement\_descriptor | This field is not required for this country | South Korea (KR) | | | | | --- | --- | --- | | Object | Parameter | Description | | beneficiary\_required\_fields | first\_name | Enter the first name of the beneficiary | | beneficiary\_required\_fields | last\_name | Enter the last name of the beneficiary | | beneficiary\_required\_fields | address | Enter the address of the beneficiary | | beneficiary\_required\_fields | city | Enter the city of the beneficiary | | beneficiary\_required\_fields | country | Enter the country of the beneficiary | | beneficiary\_required\_fields | postcode | Enter the postcode of the beneficiary | | beneficiary\_required\_fields | account\_number | Enter the account number | | beneficiary\_required\_fields | bic\_swift | Enter the BIC information | | sender\_required\_fields | company\_name | Enter the company name of the sender | | sender\_required\_fields | address | Enter the address of the sender | | sender\_required\_fields | city | Enter the city of the sender | | sender\_required\_fields | country | Enter the country of the sender | | sender\_required\_fields | purpose\_code | This field is required for this country. See [Purpose Code](swift-payout.html "SWIFT Payout") | | payout\_options | beneficiary\_country | Enter the country of the beneficiary | | payout\_options | description | Enter the purpose of the payment. Up to 15 characters. | | payout\_options | statement\_descriptor | This field is not required for this country | [###### Requesting a Payout](#idp237409_body) Your company is the sender of the payout and the employee is the beneficiary who receives the payout. When your payroll manager requests a payout from the company's eWallet to an employee's bank account, you ask Rapyd to process the payout. For that, you'll use [Create Payout](create-payout.html "Create Payout") with the following parameters: Description of Body Parameters | | | | --- | --- | | Body Parameter | Description | | beneficiary | Enter a 'beneficiary' object that has the following fields:

`first_name` - Henry

`last_name` - Tan

`account_number` - 888449956988

`aba` - Enter the ABA routing number: 573675777 | | beneficiary\_country | Enter **GB** as the code for the United Kingdom, the beneficiary's country. | | beneficiary\_entity\_type | Enter 'individual' as the type of entity for the beneficiary. | | description | Enter 'Test Payout - bank to wallet' as the description of the payout transaction. | | ewallet | Enter the wallet 'id' that you received when you created the company wallet in your sandbox. For purposes of this use case lesson, we are using **ewallet\_27a63119c130f95a6ec59f86c93f28f8**, which is the company wallet ID we created in our sandbox. | | payout\_amount | Enter 3000 as the amount received by the beneficiary. | | payout\_currency | Enter **GBP** as the code for British Pound sterling, the currency received by the beneficiary. | | payout\_method\_type | Enter **xx\_swift\_bank** as the payout method type. | | sender | Enter a 'sender' object that has the following fields:`company_name` - Enter the Business Name`purpose code` - Enter salary | | sender\_currency | Enter **EUR** as the code for Euros, the sender's currency. | | sender\_entity\_type | Enter 'company' as the type of entity for the sender. | | sender\_country | Enter **FR** as the code for France, the sender's country. | ###### Create Payout Request You ask Rapyd to process the payout of 3,000 British Pound Sterling to the employee's UK bank account. * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/payouts // Message body: { "ewallet": "ewallet\_27a63119c130f95a6ec59f86c93f28f8", "merchant\_reference\_id": "Test-Cash-8888", "payout\_amount": 3000, "payout\_method\_type": "xx\_swift\_bank", "sender\_currency": "EUR", "sender\_country": "FR", "beneficiary\_country": "GB", "payout\_currency": "GBP", "sender\_entity\_type": "company", "beneficiary\_entity\_type": "individual", "beneficiary": { "payment\_type": "regular", "address": "1 Main Street", "city": "Anytown", "country": "US", "first\_name": "Henry", "last\_name": "Tan", "state": "NY", "phone\_number": "+145434653466", "postcode": "10101", "aba": "573675777", "account\_number": "888\*\*\*\*\*\*\*\*", "identification\_type": "work\_permit", "identification\_value": "asdasd123123" }, "sender": { "company\_name" : "Test Sender 123", "city": "Anytown", "state": "NY", "phone\_number": "+145434653466" }, "description": "Test payout - bank to wallet", "statement\_descriptor": "Test txn", "metadata": { "merchant\_defined": true } } ###### Create Payout Response Let's take a look at the response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "4a6e569e-0ed5-4a5c-a102-a47931cf248e" }, "data": { "id": "payout\_c87991aabb7266e4dcb8fc6f2a68505c", "payout\_type": "bank", "payout\_method\_type": "xx\_swift\_bank", "amount": 3000, "payout\_currency": "GBP", "sender\_amount": 3527.09, "sender\_currency": "EUR", "status": "Confirmation", "sender\_country": "FR", "sender": { "country": "FR", "entity\_type": "company", "name": "Test Sender 123", "city": "Anytown", "state": "NY", "phone\_number": "+145434653466", "company\_name": "Test Sender 123", "currency": "EUR" }, "beneficiary\_country": "GB", "beneficiary": { "last\_name": "Tan", "first\_name": "Henry", "country": "US", "entity\_type": "individual", "address": "1 Main Street", "name": "Henry Tan", "postcode": "10101", "city": "Anytown", "state": "NY", "phone\_number": "+145434653466", "account\_number": "888\*\*\*\*\*\*\*\*", "currency": "GBP", "identification\_type": "work\_permit", "identification\_value": "asdasd123123", "aba": "573675777", "payment\_type": "regular" }, "fx\_rate": 0.85055905, "instructions": {}, "ewallets": \[\ {\ "ewallet\_id": "ewallet\_27a63119c130f95a6ec59f86c93f28f8",\ "amount": 3527.09,\ "percent": 100\ }\ \], "metadata": { "merchant\_defined": true }, "description": "Test payout - bank to wallet", "created\_at": 0, "payout\_fees": null, "expiration": null, "merchant\_reference\_id": "Test-Cash-8888", "paid\_at": null, "identifier\_type": null, "identifier\_value": null, "error": null, "paid\_amount": 0, "statement\_descriptor": "Test txn", "gc\_error\_code": "NOT\_IMPLEMENTED" } } Besides parameter values that you entered in the request, the data section of this response shows: * The `id` of the 'payout' object is **payout\_c87991aabb7266e4dcb8fc6f2a68505c**. Webhooks that relate to this payout refer to this ID. * The `payout_type` is bank. * Under `sender`: Fields of the 'sender' object are listed. * Under `beneficiary`: Fields of the 'beneficiary' object are listed. * The `status` is Confirmation. This means that the 'payout' object is waiting for confirmation of the FX rate. [###### Purpose Code](#idp237542_body) The purpose code describes the nature of the payout, or what the payout is for. Here are the possible values for the `purpose_code` field: | | | | --- | --- | | Field | Value | | purpose\_code | investment\_income | | purpose\_code | salary | | purpose\_code | insurance\_payments | | purpose\_code | computer\_services | | purpose\_code | educational\_services | | purpose\_code | payment\_of\_goods | | purpose\_code | payment\_of\_services | | purpose\_code | Inward\_remittance | ### Purpose Code Required Countries The following countries require a purpose code when making a payout: * China * India * South Korea * Philippines * Malaysia [###### Closing the Transaction](#idp237610_body) **Simulating Payout Completion** The sandbox does not directly simulate the action of the beneficiary receiving the payout funds. You can simulate this action with the procedure described in [Complete Payout](complete-payout.html "Complete Payout") . For this, you will need the payout ID and payout amount that you generated in your sandbox. When a payout completion is simulated, Rapyd sends a webhook. Configure your system to receive webhooks with the procedure described in [Defining a Webhook Endpoint](defining-a-webhook-endpoint.html "Defining a Webhook Endpoint") . After you simulate that the employee's bank has accepted the transfer, Rapyd sends you [Webhook - Payout Completed](payout-completed-webhook.html "Payout Completed Webhook") . The webhook confirms that the payout was completed. In this section: Search results -------------- No results found * [Prev](card-payout.html#idp235730) * [Next](swift-payout.html#idp235920) --- # Create a Payout [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Disburse](disburse.html) * Create a Payout * [Prev](listing-payouts.html#idp257601) * [Next](create-a-payout.html#idp257643) #### Create a Payout Create a Payout using the Client Portal. You can create a payout right from the Client Portal by logging in and going to **Disburse** > **Payouts** > **Create Payout**. **Note**: This procedure requires Owner or Administrator privileges. [##### How to Create a Payout](#idp257643_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Disburse** > **Payouts** > **Create Payout** or **Disburse** > **Overview** > **Create Payout**. ![64808af6654a6.png](image/16763ca4b08104.png) ###### Payout Details The Payout Details page appears. ![64808af8960ad.gif](image/16763ca4b11e28.gif) ### Pay For Someone Else The **Pay for Someone Else** checkbox can be clicked if you want to create a payout where someone else is the sender. This option is for enterprise customers only. * If **Pay for Someone Else** is selected, the **Source of Funds** field will appear. * If you have multiple client wallets available, then you can choose the source of funds for the payout from the dropdown menu. * Choose the **Company Balance** or **End User Wallet** option. **Note**: The **End User Wallet** option will only appear if you are creating a payout on behalf of someone else. ![64808afdab303.png](image/16763ca4b1b987.png) 1. Fill out the following fields: * **From**: The origin country for the payout. This field is optional and will appear if **Pay for Someone Else** is checked. * **To**: The destination country for the payout * **Sent Amount**: The currency amount for the payout * **Currency (for Sent Amount)**: The currency the payout will be sent * **Currency (for Received Amount)**: The currency the payout will be received in by the beneficiary 2. Select the Beneficiary Entity Type: **Individual** or **Business**. **Note**: The selected option will determine if the beneficiary will be an individual or a company. 3. Click **Next**. ###### Payout Method The Payout Method page appears. ![payout-method-type-details](image/16763ca4b26fdd.png) 1. Select the Payout Category for the Payout Method Type: * Bank * Card * Rapyd Wallet **Note**: Only the payout categories available to you will be shown. 2. Choose the specific Payout Method Type from the drop down menu. **Note**: Arrival Time Details will be shown in the callout below the payment method type selection. 3. Click **Next**. ###### Sender and Beneficiary The Sender and Beneficiary page appears. ![64808b01d6b4b.png](image/16763ca4b30762.png) You must create or select a Sender and Beneficiary for the payout. 1. Search for a sender using the search bar. Search by: **Sender ID**, **Name**, or **Reference ID**. For more information on the fields, see [Listing Payouts](listing-payouts.html "Listing Payouts") . ![64808b0408701.png](image/16763ca4b39330.png) 2. **Optional**: You can click **\+ Create New Sender** if you want a new sender for the payout. This option will appear if the **Pay for Someone Else** option is checked. 3. The **Create Sender** window appears. ![64808b062de72.png](image/16763ca4b4275c.png) 4. List the Company Name and click **Next**. 5. List any additional details and click **Confirm**. 6. Search for a beneficiary using the search bar. Search by: **Beneficiary ID**, **Name ID** or **Reference ID**. For more information on the fields, see [Listing Payouts](listing-payouts.html "Listing Payouts") . 7. You can click **\+ Create New Beneficiary** if you want a new beneficiary for the payout. 8. The **Create New Beneficiary** window appears. 9. If your beneficiary is an: * **Individual**: Add the First Name, Last Name, click **Next** and add the Additional Details. ![64808b08012bb.png](image/16763ca4b4bc46.png) * **Business**: Add the Company Name, click **Next** and add Additional Details. ![64808b09d1135.png](image/16763ca4b553e6.png) 10. Click **Confirm**. ### Required Fields for Sender or Beneficiary There are required fields for both the Sender and Beneficiary in order to create a successful payout. If the sender or beneficiary you selected is missing required fields, you will be prompted to fill in the missing fields. A new sender or beneficiary will be created with the updated required fields. 11. Once the Sender and Beneficiary have been selected, click **Next**. ![64808b0bae52e.png](image/16763ca4b5ed91.png) ###### Confirmation The Confirmation page appears. ![64808b0ddf913.png](image/16763ca4b68f4a.png) 1. Review the transaction details before confirming the payout. ![64808b0fe7cd0.png](image/16763ca4b71be5.png) 2. Check the **I confirm the payout details above** checkbox. 3. Click **Submit**. You can send an email notification to the beneficiary when the payout is completed by submitting their email address in the provided field. This is optional. The Payout confirmation dialogue box appears. ![64808b1205d93.png](image/16763ca4b7b4c2.png) You can see the payout status under **Disburse** > **Payouts** as described in [Listing Payouts](listing-payouts.html "Listing Payouts") . **Note**: The payout tracker status can be shared with the beneficiary. For more information see [Payout Tracker Link](payout-tracker-link.html "Payout Tracker Link") . ### Classic Version Still Available You can click on the link at the top of the page to access the classic version of Create Payout. ![64808b140c537.png](image/16763ca4b867ce.png) The classic layout of Create Payout appears. ![64808b15cd8c2.png](image/16763ca4b8f66c.png) ###### Blocked Payouts The payouts you create can be blocked if they trigger a rule set by Rapyd Protect. See [Creating a Fraud Rule](creating-a-fraud-rule.html "Creating a Fraud Rule") for more information. 1. When a payout is blocked by Rapyd Protect, the following error message appears: ![create-a-payout-flow-16.png](image/16763ca4b9af78.png) 2. Click the **More details** link to view a list of blocked transactions. ![create-a-payout-flow-17.png](image/16763ca4ba39c7.png) In this section: Search results -------------- No results found * [Prev](listing-payouts.html#idp257601) * [Next](create-a-payout.html#idp257643) --- # Adding a Bank Account [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [My Account](my-account.html) * Adding a Bank Account * [Prev](viewing-bank-accounts.html#idp250363) * [Next](adding-a-bank-account.html#idp250384) #### Adding a Bank Account You can add a single bank account to your Rapyd Wallet. The bank account is used for settlements. When adding the bank account, the currency you select will be the settlement currency. You must have Owner or Administrator privileges to add a bank account. [##### How to Add a Bank Account](#idp250384_body) To define a bank account: 1. Sign in to the Client Portal as described in [Signing in to the Client Portal](signing-in-to-the-client-portal.html "Signing In to the Client Portal") and navigate to **My Account** > **Account management**. The **Account management** page appears. ![add-bank-account-flow-1.png](image/16763ca3faf8fc.png) 2. To add your bank account, tap the **Actions** drop-down in the **Accounts and settlement configuration** section. 3. Select **\+ Add bank account**. ![add-bank-account-flow-2.png](image/16763ca3fb913a.png) 4. The **Add bank account** dialog box appears. ![add-bank-account-flow-3.png](image/16763ca3fc330b.png) 5. Provide the following information: * Under **Account Type**, select **Personal** or **Business**. * When more than one client wallet is available, select the ewallet linked to your account in the drop-down menu. * In the **Country of Bank** drop-down list, select the country in which the bank is located. * In the **Currency of Account** drop-down list, select the settlement currency. **Note**: The currency may already be preselected. 6. Tap **Next**. The following panel appears: ![add-bank-account-flow-4.png](image/16763ca40162be.png) 7. Enter the values for the **Reporting Information** fields: * **Account Nickname** - A unique internal alias, such as **US Dollar Account**. * **Bank Name** - The bank's name (e.g. Bank of America, Chase Bank). * **Reference ID** - A unique identification that can be added to settlements. **Note**: If the bank name is not listed in the dropdown, select **Other** and enter the bank name in the field. 8. Enter the values for the **Bank Details** fields: **Note**: These fields might vary, depending on your bank account's country and currency. ![add-bank-account-flow-5.png](image/16763ca401fe45.png) * **IBAN** - International Bank Account Number * **BIC SWIFT Code** - The Business Identifier Code associated with the bank. * **Sort Code** - A routing number used for UK bank accounts. * **Beneficiary Name** - The name of the beneficiary associated with the account. **Note**: The Beneficiary Name must match the name of the Bank Account Holder in order to settle funds. 9. Tap **Submit**. The new bank account appears under **Accounts and settlement configuration**. [##### Bank Account Verification](#idp250483_body) You need to verify your bank account information when linking your account to Rapyd through the Client Portal. ###### Verifying a Bank Account with a Bank Statement You can verify your bank account information using your bank statement with the following steps: **Note**: The country of origin for your bank account must be a country that is not the UK. 1. After adding your bank account information, the **Bank account added** dialog box appears. ![add-bank-account-flow-6.png](image/16763ca402a401.png) 2. Click the **Upload bank statement** button. 3. The **Upload bank statement** dialog box appears. ![add-bank-account-flow-7.png](image/16763ca4032d80.png) 4. Add your bank statement file by either dragging the file, or clicking the **+** icon. 5. Click **Upload**. ### Bank Account Verification Status Rapyd will review the uploaded bank statement file. The bank account will have a status of **Not Verified** until the file is fully reviewed and approved. ###### Verifying a Bank Account with a Redirect You can verify your bank account by redirecting to a permissions page to verify your account information with the following steps: **Note**: The country of origin for your bank account must be one of the following countries: UK, France, Germany, Netherlands, Belgium, Italy, or Iceland. 1. Sign in to the Client Portal as described in [Signing In to the Client Portal](signing-in-to-the-client-portal.html "Signing In to the Client Portal") and navigate to **My Account** > **Settlements**. 2. Click **Add Bank Account**. 3. Provide the required bank account information in the window that appears. See [How to Add a Bank Account](adding-a-bank-account.html "Adding a Bank Account") for more detail. ![add-bank-account-flow-8.png](image/16763ca403c485.png) 4. Click **Submit**. 5. After submitting the bank account details, you will be redirected to a permissions page. 6. Read the terms and conditions. Give Rapyd the permission to access your bank account information. 7. Click **Accept**. 8. Redirect to your bank website. 9. Log in to your bank. 10. Confirm permissions for Rapyd to access your account information. 11. Click **Confirm**. 12. Redirect to the **Settlements** page in Client Portal. 13. The verified bank account appears on the **Settlements** page with a status of **Verified**. In this section: Search results -------------- No results found * [Prev](viewing-bank-accounts.html#idp250363) * [Next](adding-a-bank-account.html#idp250384) --- # Viewing Payment Details [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Collect](collect.html) * [Payments](payments.html) * Viewing Payment Details * [Prev](listing-payments.html#idp253284) * [Next](viewing-payment-details.html#idp253452) ##### Viewing Payment Details You can view details of a specific payment. [###### How to View Payment Details](#idp253452_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Collect** > **Payments**. The **Payments** page appears. 2. Do one of the following: * For a preview of the payment, continue to step 3. * For payment details, continue to step 4. 3. Hover over the row that contains the payment you want to view and then click on the row. ![648089c63ba17.png](image/16763ca4551ad2.png) The following panel appears: ![648089c90436d.png](image/16763ca455a709.png) For a description of the information displayed, see [Listing Payments](listing-payments.html "Listing Payments") . ### Note To continue to the **Payment Details** page, tap **See all details** . 4. Tap the **See more details icon** of the payment you want to view. ![648089cac0675.png](image/16763ca4563b2f.png) The **Payment Details** page appears. ![648089cca03db.png](image/16763ca456d105.png) For a description of the information displayed, see [Listing Payments](listing-payments.html "Listing Payments") . ### Closing or Rejecting Payments You close or reject payments in Client Portal by Viewing the Payment Details as previously described under How to View Payment Details and go to **Change Status** > **Complete** or **Reject** > **Confirm** . [###### Creating a Refund](#idp253503_body) You can create a refund for completed payments. Status should be **Closed**. 1. Click the desired transaction 2. On the details panel select **Create Refund**. 3. Complete the Refund fields 4. Click **Create**. [###### Downloading a PDF Receipt](#idp253518_body) 1. Click the desired transaction. 2. On the details panel, select **Download Receipt**. **Note**: You can also select **Download Receipt** from the full Payment Details page. The receipt will download to your designated downloads folder. 3. Click on the downloaded file to open. The PDF receipt will have the following information: * Business name - matches your legal business name listed in your Client Portal account under **Settings** > **Account Details** * Business address - Lists a designated business address including address line, city, state/territory, country and zip **Note**: A merchant can only have 1 listed address. * Payment Method with last 4 digits - Format of Visa \*\*\*\*1111 * Date paid - date of the transaction * Amount - total payment with currency ![viewing-payment-details-flow-5.png](image/16763ca45773c9.png) In this section: Search results -------------- No results found * [Prev](listing-payments.html#idp253284) * [Next](viewing-payment-details.html#idp253452) --- # Rapyd Verify Hosted Page [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Verify](rapyd-verify.html) * Rapyd Verify Hosted Page * [Prev](rapyd-verify.html#idp246269) * [Next](rapyd-verify-hosted-page.html#idp246300) #### Rapyd Verify Hosted Page Streamline your business verification process. | `Enterprise` `beta` Use Rapyd Verify to efficiently gather business details for [KYB](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_kyb "Know Your Business") verification. The Rapyd Verify Hosted Page is generated to collect the business or sellers information. Based on the evaluation the seller is either approved or rejected and Rapyd sends a status update. Once a business or seller is approved, Rapyd updates the platform capabilities and the available transactions that can be processed. **Common Use Cases** * A client onboards sellers on its marketplace platform and wants to use Rapyd Verify Hosted Page application process for the business onboarding process. Rapyd Verify Hosted Page Example 1. Enter your business information. 2. Click **Start Application**. 3. Enter your business details, company details, and owner information to complete the application process. 4. Click **Submit**. [##### Create Rapyd Verify Hosted Page Workflow](#idp246300_body) ![create-rapyd-verify-hosted-page.jpg](image/16763ca3bc05a8.jpg) 1. You request to [Create a Wallet](create-wallet.html "Create Wallet") for a seller, and collect their information. 2. Rapyd Creates a Wallet for the seller, and sends a notification. 3. You request to Create a Rapyd Verify Hosted Page, and send it to the seller. 4. The seller completes the hosted page, and Rapyd sends you a notification. [##### Rapyd Verify Message Sequences](#idp246315_body) The message sequence diagrams below describe how information is exchanged between Rapyd and the merchant. Create Rapyd Verify Application ![create-rapyd-verify-application-message-sequence.svg](image/16763ca3bc9608.svg) [##### Rapyd Verify Application Statuses](#idp246322_body) The finite state diagram below summarizes the statuses for the Rapyd Verify Application. ![verify-application.svg](image/16763ca3bd21d3.svg) Description of Statuses | Status | Description | | --- | --- | | new | The Rapyd Verify application has been created. | | submitted | The Rapyd Verify application has been submitted. | | approved | The Rapyd Verify application has been approved. | | rejected | The Rapyd Verify application has been rejected. | [##### How the Verify Hosted Page Works](#idp246360_body) 1. Create a Wallet as described in [Create Wallet](create-wallet.html "Create Wallet") . 2. Use the [Create Rapyd Verify Application](create-rapyd-verify-application.html "Create Rapyd Verify Application") API call. [###### Rapyd Verify Hosted Page Request](#idp246369_body) * * Request * { "reference\_id": "TestVericication123456891", "ewallet": "ewallet\_cc62e92b7ab18dbf44a41218a85ac624", "contact": "cont\_0103a8fb4e44155904709ee7d1cc84de", "page\_expiration": 1608621350, "cancel\_url": "http://docs.rapyd.net", "complete\_url": "http://rapyd.net", "country":"us" } //Full request body not shown ### Note You can also find the Rapyd Verify Hosted Page object fields in [Create Rapyd Verify Application](create-rapyd-verify-application.html "Create Rapyd Verify Application") . [###### Rapyd Verify Hosted Page Response](#idp246382_body) * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "112af633-1cce-4384-abaf-65a5173c9aa4" }, "data": { "id": "hp\_idv\_d9cabeee58662729de6325b0ac69efe8", "status": "NEW", "reference\_id": "TestVericication123456891", "wallet": "ewallet\_cc62e92b7ab18dbf44a41218a85ac624", "contact": "cont\_0103a8fb4e44155904709ee7d1cc84de", "language": null, "country": "US", "page\_expiration": 1632257699, "request\_type": "verify", "redirect\_url": "https://sandboxhosted.rapyd.net/idv?token=hp\_idv\_d9cabeee58662729de6325b0ac69efe8", "merchant\_website": "http://rapyd.net", "merchant\_color": "323fff", "merchant\_logo": null, "cancel\_url": "http://docs.rapyd.net", "complete\_url": "http://rapyd.net" } } //Full message response not shown In this section: The process of verifying the identity of a business customer. Search results -------------- No results found * [Prev](rapyd-verify.html#idp246269) * [Next](rapyd-verify-hosted-page.html#idp246300) --- # Create Beneficiary [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Disburse](rapyd-disburse-368669.html) * [Beneficiary](beneficiary.html) * Create Beneficiary * [Prev](beneficiary.html) * [Next](create-beneficiary.html#idp365083) ##### Create Beneficiary Create a beneficiary for use in payouts. The response provides a unique beneficiary ID, which you can use in place of the `beneficiary` object for [Create Payout](create-payout.html "Create Payout") This method triggers the [Beneficiary Created Webhook](beneficiary-created-webhook.html "Beneficiary Created Webhook") webhook. This webhook contains the same information as the response. ### Note In addition to the required fields documented below, you must include all other fields listed for the beneficiary in the response to [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields") , and you must conform to the regex provided. To create a beneficiary that you can use with multiple payout methods, include all fields that are required by each payout method. The client is responsible for including all required fields. The additional fields used in the **Create Beneficiary - individual** example are for the **ca\_general\_bank** payout method. The additional fields used in the **Create Beneficiary - company** example are for the **us\_ach\_bank** payout method. [###### Parameters](#idp365087_body) [###### Request Header Parameters](#idp365089_body) [###### Request Body Parameters](#idp365149_body) [###### Response Parameters](#idp365277_body) ###### Code Samples * * .NET * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var requestObj = new { category = "bank", country = "CA", currency = "USD", entity\_type = "individual", first\_name = "John", identification\_type = "identification\_id", identification\_value = "123456789", last\_name = "Doe", payment\_type = "priority", address = "1 Main Street", city = "Montreal", state = "Quebec", postcode = "12345", account\_number = "1234567", merchant\_reference\_id = "JDoe", bic\_swift = "12345678XXX" }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/payouts/beneficiary", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { category: 'bank', country: 'CA', currency: 'USD', entity\_type: 'individual', first\_name: 'John', identification\_type: 'identification\_id', identification\_value: '123456789', last\_name: 'Doe', payment\_type: 'priority', address: '1 Main Street', city: 'Montreal', state: 'Quebec', postcode: '12345', account\_number: '1234567', merchant\_reference\_id: 'JDoe', bic\_swift: '12345678XXX' }; const result = await makeRequest('POST', '/v1/payouts/beneficiary', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $beneficiary = \[\ "category" => "bank",\ "country" => "CA",\ "currency" => "USD",\ "entity\_type" => "individual",\ "first\_name" => "John",\ "identification\_type" => "identification\_id",\ "identification\_value" => "123456789",\ "last\_name" => "Doe",\ "payment\_type" => "priority",\ "address" => "1 Main Street",\ "city" => "Montreal",\ "state" => "Quebec",\ "postcode" => "12345",\ "account\_number" => "1234567",\ "merchant\_reference\_id" => "JDoe",\ "bic\_swift" => "12345678XXX"\ \]; try { $object = make\_request('post', '/v1/payouts/beneficiary', $beneficiary); var\_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request beneficiary\_details = { "category": "bank", "country": "CA", "currency": "USD", "entity\_type": "individual", "first\_name": "John", "identification\_type": "identification\_id", "identification\_value": "123456789", "last\_name": "Doe", "payment\_type": "priority", "address": "1 Main Street", "city": "Montreal", "state": "Quebec", "postcode": "12345", "account\_number": "1234567", "merchant\_reference\_id": "JDoe", "bic\_swift": "12345678XXX" } result = make\_request(method='post', path='/v1/payouts/beneficiary', body=beneficiary\_details) pprint(result) * /v1/payouts/beneficiary * Create Beneficiary - individual * curl -X post https://sandboxapi.rapyd.net/v1/payouts/beneficiary -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "category": "bank", "country": "CA", "currency": "USD", "entity\_type": "individual", "first\_name": "John", "last\_name": "Doe", "identification\_type": "identification\_id", "identification\_value": "123456789", "default\_payout\_method\_type": "ca\_general\_bank", "merchant\_reference\_id": "JohnDoe", // Fields from 'beneficiary\_required\_fields' in the response to 'Get Payout Method Type Required Fields' "payment\_type": "priority", "address": "1 Main Street", "city": "Montreal", "state": "Quebec", "postcode": "12345", "account\_number": "1234567", "bic\_swift": "12345678XXX" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "c63dbcc5-4bdf-49b5-907e-1320184bde74" }, "data": { "id": "beneficiary\_9a49c928c059886341898699992112d2", "last\_name": "Doe", "first\_name": "John", "country": "CA", "entity\_type": "individual", "address": "1 Main Street", "name": "John Doe", "postcode": "12345", "city": "Montreal", "state": "Quebec", "account\_number": "1234567", "currency": "USD", "identification\_type": "identification\_id", "identification\_value": "\*\*\*\*\*\*\*\*\*", "merchant\_reference\_id": "JohnDoe", "bic\_swift": "12345678XXX", "payment\_type": "priority", "category": "bank", "default\_payout\_method\_type": "ca\_general\_bank" } } * Create Beneficiary - company * curl -X post https://sandboxapi.rapyd.net/v1/payouts/beneficiary -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "category": "bank", "company\_name": "All Star Limousine", "country": "US", "currency": "USD", "entity\_type": "company", "identification\_type": "company\_registered\_number", "identification\_value": "9876543210", "merchant\_reference\_id": "AllStarLimo", // Fields from 'beneficiary\_required\_fields' in the response to 'Get Payout Method Type Required Fields' "account\_number": "0987654321", "aba": "987654321" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "54a91bf6-00a8-4838-b1ee-28dfb815797b" }, "data": { "id": "beneficiary\_d895d90d276869efe1e359386a1fb3e3", "country": "US", "entity\_type": "company", "name": "All Star Limousine", "company\_name": "All Star Limousine", "account\_number": "0987654321", "currency": "USD", "identification\_type": "company\_registered\_number", "identification\_value": "9876543210", "bank\_name": "All Star Limousine", "merchant\_reference\_id": "AllStarLimo", "aba": "987654321", "category": "bank" } } * Create Beneficiary - rapyd\_ewallet confirmation required * curl -X post https://sandboxapi.rapyd.net/v1/payouts/beneficiary -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "category": "rapyd\_ewallet", "currency": "USD", // Fields from 'beneficiary\_required\_fields' in the response to 'Get Payout Method Type Required Fields' "confirmation\_required": true, "ewallet": "ewallet\_3801e782955b29955445586a2405a5db" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "81026979-6ae7-49bc-9130-3226691df46b" }, "data": { "id": "beneficiary\_f7cd32a5bc72e1deb490f380683f4256", "currency": "USD", "ewallet": "ewallet\_3801e782955b29955445586a2405a5db", "confirmation\_required": true, "category": "rapyd\_ewallet" } } * Create Beneficiary with card\_id * curl -X post https://sandboxapi.rapyd.net/v1/payouts/beneficiary -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "category": "card", "country": "US", "currency": "USD", "entity\_type": "individual", "first\_name": "John", "last\_name": "Doe", "identification\_type": "work permit", "identification\_value": "6658412", "merchant\_reference\_id": "JohnDoeOffice", // Fields from 'beneficiary\_required\_fields' in the response to 'Get Payout Method Type Required Fields' "payment\_type": "regular", "address": "123 Main Street", "city": "NY", "postcode": "12345", "card\_id": "card\_28b1dc9999123aba49703ee82f57ccb3" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "8acf3c5c-ff1a-48ec-b5e9-79d6abe5642c" }, "data": { "id": "beneficiary\_4d13aa2f3ef76536a6b4062d127475ce", "last\_name": "Doe", "first\_name": "John", "country": "US", "entity\_type": "individual", "address": "123 Main Street", "name": "John Doe", "postcode": "12345", "city": "NY", "currency": "USD", "identification\_type": "work permit", "identification\_value": "\*\*\*\*\*\*\*", "merchant\_reference\_id": "JohnDoeOffice", "card\_expiration\_year": "23", "card\_expiration\_month": "10", "card\_number": "0001", "payment\_type": "regular", "category": "card" } } * Create Beneficiary with card details * curl -X post https://sandboxapi.rapyd.net/v1/payouts/beneficiary -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d ' { "category": "card", "country": "CA", "currency": "USD", "entity\_type": "individual", "first\_name": "John", "last\_name": "Doe", "identification\_type": "identification\_id", "identification\_value": "123456789", "default\_payout\_method\_type": "us\_visa\_card", "email": "janedoe@Rapyd.net ", "card\_number": "4111111111111111", "card\_expiration\_month": "11", "card\_expiration\_year": "24", "card\_cvv": "123", "merchant\_reference\_id": "JohnDoe", "payment\_type": "priority", "address": "1 Main Street", "city": "Montreal", "state": "Quebec", "postcode": "12345" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "b2d2721c-d6d1-4954-a2bf-8c5aac2a86c4" }, "data": { "id": "beneficiary\_03db3e06ed883087b59cb8da12afc33f", "last\_name": "Doe", "first\_name": "John", "country": "CA", "entity\_type": "individual", "address": "1 Main Street", "name": "John Doe", "postcode": "12345", "city": "Montreal", "state": "Quebec", "currency": "USD", "email": "janedoe@Rapyd.net ", "identification\_type": "identification\_id", "identification\_value": "\*\*\*\*\*\*\*\*\*", "merchant\_reference\_id": "JohnDoe", "bin\_details": { "type": "CREDIT", "brand": "VISA", "level": null, "issuer": "JPMORGAN CHASE BANK, N.A.", "country": "US", "bin\_number": "411111" }, "card\_expiration\_year": "24", "card\_expiration\_month": "11", "card\_number": "1111", "payment\_type": "priority", "category": "card", "default\_payout\_method\_type": "us\_visa\_card" } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. A numeric identifier for financial institutions. It appears as the first four to six digits on a payment card. Search results -------------- No results found * [Prev](beneficiary.html) * [Next](create-beneficiary.html#idp365083) --- # List Issued Card Transactions [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Issuing](rapyd-issuing-365115.html) * [Issued Card Transaction](issued-card-transaction.html) * List Issued Card Transactions * [Prev](issued-card-transaction.html) * [Next](list-issued-card-transactions.html#idp397111) ##### List Issued Card Transactions Use the GET method to retrieve a list of transactions for a specific issued card. [###### Parameters](#idp397115_body) [###### Request Path Parameters](#idp397117_body) * * card * ID of the issued card. String starting with **card\_**. [###### Request Query Parameters](#idp397127_body) * * start\_date * Timestamp of the first transaction or later, in Unix time. * * end\_date * Timestamp of the last transaction or later, in Unix time. * * min\_amount * Transactions greater than a specific amount. * * max\_amount * Transactions smaller than a specific amount. * * merchant\_name\_search * Filters the results to return only transactions that have this string as part of the name or location. * * page\_size * Number of results per page. * * page\_number * Page number to retrieve. [###### Request Header Parameters](#idp397172_body) [###### Response Parameters](#idp397222_body) ###### Code Samples * * .NET * using System; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string card = "card\_5004bc56594a31fb9a48b9b88c2d6f48"; string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/issuing/cards/{card}/transactions?min\_amount=5"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('../../../../Utilities/JS/utilities').makeRequest; async function main() { try { const result = await makeRequest( 'GET', '/v1/issuing/cards/card\_5004bc56594a31fb9a48b9b88c2d6f48/transactions?min\_amount=5' ); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * * * Python * from pprint import pprint from utilities import make\_request results = make\_request(method='get', path=f'/v1/issuing/cards/card\_5004bc56594a31fb9a48b9b88c2d6f48/transactions?min\_amount=5') pprint(results) * /v1/issuing/cards/:card/transactions * List Issued Card Transactions * curl -X get https://sandboxapi.rapyd.net/v1/issuing/cards/card\_d8903df251a06a5dfa7630e0f6389fa4/transactions?min\_amount=5 -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "1ea2effa-e039-40e7-a5db-a502a64ad023" }, "data": \[\ {\ "id": "cit\_08693963613e325012f2ecbafcbae94a",\ "amount": 5,\ "currency": "USD",\ "created\_at": 1609767699,\ "card\_id": "card\_d8903df251a06a5dfa7630e0f6389fa4",\ "merchant\_category\_code": "",\ "merchant\_name\_location": "TEST MERCHANT",\ "auth\_code": "13QVNV",\ "bin": "523489",\ "last4": "1271",\ "issuing\_txn\_type": "SALE",\ "pos\_entry\_mode": "",\ "systems\_trace\_audit\_number": "",\ "retrieval\_reference\_number": "E347B32C01D5",\ "original\_transaction\_id": "",\ "original\_txn\_amount": null,\ "original\_txn\_currency": "",\ "fx\_rate": null,\ "card\_program": "",\ "wallet\_transaction\_id": "wt\_ed450816f2c67a13e39888be8c533679"\ },\ {\ "id": "cit\_862d97478bf33c9b0c6056d7f8a55262",\ "amount": 5,\ "currency": "USD",\ "created\_at": 1608796554,\ "card\_id": "card\_d8903df251a06a5dfa7630e0f6389fa4",\ "merchant\_category\_code": "",\ "merchant\_name\_location": "TEST MERCHANT",\ "auth\_code": "",\ "bin": "523489",\ "last4": "1271",\ "issuing\_txn\_type": "REFUND",\ "pos\_entry\_mode": "",\ "systems\_trace\_audit\_number": "",\ "retrieval\_reference\_number": "",\ "original\_transaction\_id": "",\ "original\_txn\_amount": null,\ "original\_txn\_currency": "",\ "fx\_rate": null,\ "card\_program": "",\ "wallet\_transaction\_id": ""\ }\ \] } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](issued-card-transaction.html) * [Next](list-issued-card-transactions.html#idp397111) --- # Bank Payout Malaysia [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Payout Method Types](payout-method-types.html) * [APAC](apac-394671.html) * Bank Payout Malaysia * [Prev](apac-394671.html#idp238274) * [Next](bank-payout-malaysia.html#idp238313) ##### Bank Payout Malaysia Disburse funds directly to a bank account. | `Enterprise` **my\_local\_bank** is a new bank payout method type used for payouts in Malaysia. A sender can disburse funds into a beneficiary’s bank account in Malaysia. This payout method supports several banks in the region and allows the beneficiary to be paid in the currency of their choice. The benefits for the user include the ability to create cross-border payouts and disburse funds into Malaysian bank accounts. [###### Finding Required Fields for the Payout Method Type](#idp238313_body) You need to find the required fields for each payout method type. For that, you'll use [Get Payout Required Fields](get-payout-required-fields.html "Get Payout Required Fields") . Enter **my\_local\_bank** as the value for the `payout_method_type` path parameter. [###### Supported Banks and SWIFT Codes](#idp238320_body) Below is a list of all the supported banks for **my\_local\_bank** and their bic\_swift codes: | | | | | --- | --- | --- | | **Bank Name** | **bic\_swift** | **bic\_swift (alternative)** | | Affin Bank | PHBMMYKL | | | Affin Islamic Bank | AIBBMYKL | | | Agro Bank | AGOBMYKL | | | Alliance Bank | MFBBMYKL | | | Alliance Islamic Bank | ALSRMYKL | | | Al-Rajhi Banking and Investment Corporation (Malaysia) | RJHIMYKL | | | AMBank Islamic | AISLMYKL | | | AMBank | ARBKMYKL | | | Bank Islam Malaysia | BIMBMYKL | | | Bank Kerjasama Rakyat | BKRMMYKL | | | Bank Muamalat Malaysia | BMMBMYKL | | | Bank of America Malaysia | BOFAMY2X | | | Bank Simpanan Nasional | BSNAMYK1 | | | BNP Paribas Malaysia | BNPAMYKL | | | CIMB Bank | CIBBMYKL | CIBBMYKA | | CIMB Islamic Bank | CTBBMYKL | | | Citibank | CITIMYKL | | | Deutsche Bank Malaysia | DEUTMYKL | | | Hong Leong Bank | HLBBMYKL | | | Hong Leong Islamic Bank | HLIBMYKL | | | HSBC Amanah Malaysia | HMABMYKL | | | HSBC Bank | HBMBMYKL | | | Industrial & Commercial Bank of China (Malaysia) | ICBKMYKL | | | JP Morgan Chase Bank | CHASMYKX | | | Kuwait Finance House Malaysia | KFHOMYKL | | | Malayan Banking | MBBEMYKL | | | MayBank Islamic | MBISMYKL | | | Mizuho Bank (Malaysia) | MHCBMYKA | | | OCBC AL-AMIN Bank | OABBMYKL | | | OCBC Bank | OCBCMYKL | | | Public Bank | PBBEMYKL | | | Public Islamic Bank | PIBEMYK1 | | | RHB Bank | RHBBMYKL | | | RHB Islamic Bank | RHBAMYKL | | | Standard Chartered Bank | SCBLMYKX | | | Standard Chartered SAADIQ | SCSRMYKK | | | Sumitomo Mitsui Banking Corporation (Malaysia) | SMBCMYKL | | | United Overseas Bank (Malaysia) | UOVBMYKL | | | CIMB Investment Bank | COIMMYKL | | [###### Requesting a Payout](#idp238613_body) Use [Create Payout](create-payout.html "Create Payout") with the following parameters: Create Payout Request Parameters | | | | --- | --- | | **Body Parameter** | **Description** | | ewallet | Enter the wallet 'id' that you received when you created the company wallet in your sandbox. | | payout\_amount | Enter 100 as the amount received by the beneficiary. | | payout\_method\_type | Enter **my\_local\_bank** as the payout method type. | | sender\_currency | Enter **USD** as the code for United States Dollar, the sender's currency. | | sender\_country | Enter **US** as the code for the United States, the sender's country. | | beneficiary\_country | Enter **MY** as the code for Malaysia, the beneficiary's country. | | payout\_currency | Enter **MYR** as the code for Malaysian Ringgit, the currency received by the beneficiary. | | sender\_entity\_type | Enter ‘individual’ as the type of entity for the sender. | | beneficiary\_entity\_type | Enter ‘individual’ as the type of entity for the beneficiary. | | beneficiary | Enter a 'beneficiary' object that has the following fields:

* first\_name

* last\_name

* account\_number

* identification\_type

* identification\_value

* phone\_number

* bic\_swift

* purpose\_code

* nationality | | sender | Enter a 'sender' object that has the following fields:

* company\_name

* identification\_type

* identification\_value

* phone\_number

* occupation

* source\_of\_income

* date\_of\_birth

* address

* purpose\_code

* beneficiary\_relationship

* bic\_swift

* nationality | | description | Enter Salary payout - wallet to bank account as the description of the payout transaction. | | payout\_options | Enter a ‘payout\_options’ object that has the following fields:

* beneficiary\_relationship

* purpose\_code | [###### Create Payout Response](#idp238749_body) [Create Payout](create-payout.html "Create Payout") describes the fields in the response. [###### Local Bank Payout Malaysia Details](#idp238753_body) | | | | --- | --- | | **Details** | **Description** | | Payout Method Category | bank | | Payout Request String | POMT = my\_local\_bank | | Country | Malaysia | | Sender Currency | USD, GBP, SGD, HKD, AUD | | Transaction Limits | Min: 1.00 MYR

Max: 999,999 MYR | | Settlement Timeframe | 2-3 days | In this section: Search results -------------- No results found * [Prev](apac-394671.html#idp238274) * [Next](bank-payout-malaysia.html#idp238313) --- # Settings [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * Settings * [Prev](funding-your-account-via-client-portal.html#idp250916) * [Next](settings.html#idp250939) ### Settings View Payment Methods, FX Rates, Branding, User Roles & Activity Log into your [Client Portal Account](https://dashboard.rapyd.net/login) and select the settings icon (). Settings Overview en/viewing-payment-methods.html Viewing Payment Methods View and manage your payment methods. en/activating-apple-pay.html Activating Apple Pay Learn how to activate Apple Pay. en/viewing-payout-methods.html Viewing Payout Methods View and manage your payout methods. en/customizing-your-hosted-page.html Customize Your Hosted Pages Customize the hosted pages style and design. In this section: Search results -------------- No results found * [Prev](funding-your-account-via-client-portal.html#idp250916) * [Next](settings.html#idp250939) --- # Testing for Payment API [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Developer Resources](developer-resources.html) * [Resources for Testing in the Sandbox](resources-for-testing-in-the-sandbox.html) * Testing for Payment API * [Prev](resources-for-testing-in-the-sandbox.html) * [Next](error-simulation.html) ##### Testing for Payment API The payments platform provides a sandbox environment where you can test your code's interaction with the platform. The sandbox has a few features that are not present in the production environment. These features are designed to help you test your code. Just like the production environment, the sandbox generates webhooks. To receive webhooks from the sandbox, use the procedure described in [Defining a Webhook Endpoint](defining-a-webhook-endpoint.html "Defining a Webhook Endpoint") . The following sections describe testing capabilities of the payments platform. How-To Procedures * [Simulated Errors](simulated-errors.html "Simulated Errors") * [Simulating 3DS Authentication](simulating-3ds-authentication.html "Simulating 3DS Authentication") * [Simulating 3DS Authentication - API Method](simulating-3ds-authentication---api-method.html "Simulating 3DS Authentication - API Method") * [Simulating 3DS Authentication - Hosted Page](simulating-3ds-authentication---hosted-page.html "Simulating 3DS Authentication - Hosted Page") * [Simulating Cardholder Disputes](simulating-cardholder-disputes.html "Simulating Cardholder Disputes") * [Card Numbers for Testing](card-numbers-for-testing.html "Card Numbers for Testing") * [Error Simulation](error-simulation.html "Error Simulation") * [Simulating Rapyd Verify Application Responses](simulating-rapyd-verify-application-responses.html "Simulating Rapyd Verify Application Responses") In this section: Search results -------------- No results found * [Prev](resources-for-testing-in-the-sandbox.html) * [Next](error-simulation.html) --- # Create Payment Link [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Payment Link](payment-link.html) * Create Payment Link * [Prev](payment-link.html) * [Next](create-payment-link.html#idp321111) ##### Create Payment Link Creates a reusable link for a hosted payment page. A customer can use the link and the hosted payment page multiple times. After providing required information, the customer is redirected seamlessly to a Rapyd Checkout page to complete the payment. You can create the link for everyone or for a specific customer. You can make the payment amount fixed, editable, or open. [###### Parameters](#idp321115_body) [###### Request Header Parameters](#idp321117_body) [###### Request Body Parameters](#idp321177_body) [###### Response Parameters](#idp321319_body) * /v1/hosted/collect/payments * Fixed amount with maximum payments defined * curl -X post https://sandboxapi.rapyd.net/v1/hosted/collect/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "country": "GB", "currency": "GBP", "amount": "100", "merchant\_reference\_id": "payment link", "language": "EN", "checkout": { "error\_payment\_url": "https://www.rapyd.com", "complete\_payment\_url": "https://www.rapyd.com" }, "max\_payments":"3" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "60d647c7-f7e5-4849-864c-92f94a072591" }, "data": { "id": "hp\_reuse\_1921d09bf0fe23922887fb4282be51dc", "amount": 100, "currency": "GBP", "country": "GB", "amount\_is\_editable": false, "merchant\_reference\_id": "payment link", "template": { "error\_payment\_url": "https://www.rapyd.com", "complete\_payment\_url": "https://www.rapyd.com" }, "customer": "", "requested\_currency": null, "fixed\_side": null, "max\_payments": 3, "status": "NEW", "language": "en", "org\_id": "b73f63ba-ee20-4070-a994-2c0d5f0c2f7c", "merchant\_color": "", "merchant\_logo": "", "merchant\_website": "https://www.rapyd.net", "merchant\_customer\_support": {}, "merchant\_alias": "Doc Team", "merchant\_terms": "", "merchant\_privacy\_policy": "", "page\_expiration": 1716201269, "redirect\_url": "https://qa.rapyd.ly/pay/STVh06Pg" } } * Editable amount * curl -X post https://sandboxapi.rapyd.net/v1/hosted/collect/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "country": "GB", "currency": "GBP", "amount": "100", "amount\_is\_editable": true, "merchant\_reference\_id": "payment link", "language": "EN", "checkout": { "error\_payment\_url": "https://www.rapyd.com", "complete\_payment\_url": "https://www.rapyd.com" } } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "4411af1c-f390-4d8d-baf0-e98e35c2bfad" }, "data": { "id": "hp\_reuse\_8eb6eddd298498fd0cfb145aca2efb70", "amount": 100, "currency": "GBP", "country": "GB", "amount\_is\_editable": true, "merchant\_reference\_id": "payment link", "redirect\_url": "https://sbox.rapyd.ly/pay/9j3n8vrO", "template": { "error\_payment\_url": "https://www.rapyd.com", "complete\_payment\_url": "https://www.rapyd.com" }, "customer": "", "status": "NEW", "language": "en", "merchant\_color": "09a677", "merchant\_logo": "https://iconslib.rapyd.net/merchant-logos/ohpc\_8df12e51102d26bdc7e2321209878.jpg", "merchant\_website": "https://www.rapyd.net", "merchant\_customer\_support": { "url": "https://www.rapyd.net", "email": "johndoe@rapyd.net", "phone\_number": "55555555555" }, "max\_payments": null, "merchant\_alias": "rapyd", "merchant\_terms": "https://www.termsfeed.com/terms-conditions-generator/", "merchant\_privacy\_policy": "https://www.privacypolicies.com/blog/privacy-policy-template/", "page\_expiration": 1699952336 } } * Open amount * curl -X post https://sandboxapi.rapyd.net/v1/hosted/collect/payments -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "country": "GB", "currency": "GBP", "amount\_is\_editable": true, "merchant\_reference\_id": "payment link", "language": "EN", "checkout": { "error\_payment\_url": "https://www.rapyd.com", "complete\_payment\_url": "https://www.rapyd.com" } } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "346a0171-ead9-48db-8765-d79c404cda56" }, "data": { "id": "hp\_reuse\_8736c82276017fabf3953f34ae31e26a", "amount": null, "currency": "GBP", "country": "GB", "amount\_is\_editable": true, "merchant\_reference\_id": "payment link", "redirect\_url": "https://sbox.rapyd.ly/pay/7VhtZQ2y", "template": { "error\_payment\_url": "https://www.rapyd.com", "complete\_payment\_url": "https://www.rapyd.com" }, "customer": "", "status": "NEW", "language": "en", "merchant\_color": "09a677", "merchant\_logo": "https://iconslib.rapyd.net/merchant-logos/ohpc\_8df12e51102d26bdc7e2321209878.jpg", "merchant\_website": "https://www.rapyd.com", "merchant\_customer\_support": { "url": "https://www.rapyd.com", "email": "johndoe@rapyd.net", "phone\_number": "55555555555" }, "max\_payments": null, "merchant\_alias": "rapyd", "merchant\_terms": "https://www.termsfeed.com/terms-conditions-generator/", "merchant\_privacy\_policy": "https://www.privacypolicies.com/blog/privacy-policy-template/", "page\_expiration": 1699952396 } } In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](payment-link.html) * [Next](create-payment-link.html#idp321111) --- # Payout Tracker Link [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Disburse](disburse.html) * Payout Tracker Link * [Prev](viewing-sender-details.html#idp258657) * [Next](payout-tracker-link.html#idp258688) #### Payout Tracker Link Share the status of your payout. You can share the status of your payout with the beneficiary through the payout tracker link. By clicking on the link, the recipient will know where their payment is in real time, and that the money is on its way. [##### Payout Tracker Link](#idp258688_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Disburse** > **Payouts** > **Create Payout** or **Disburse** > **Overview** > **Create Payout**. 2. Create a payout to receive a payout tracker link. See [Create a Payout](create-a-payout.html "Create a Payout") for more information. 3. When you successfully create a payout in Client Portal, you are given a payout tracker link in the Payout confirmation dialogue box. The Payout confirmation dialogue box appears. ![64808b1205d93.png](image/16763ca4b7b4c2.png) 4. You can copy the tracker link and paste it into your browser to view the Payout tracker page. The Payout tracker page appears. ![64808b1b5da62.png](image/16763ca4cddb72.png) **Note**: The payout tracker link can be shared with the beneficiary. In this section: Search results -------------- No results found * [Prev](viewing-sender-details.html#idp258657) * [Next](payout-tracker-link.html#idp258688) --- # Mobile Version [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * Mobile Version * [Prev](adding-virtual-accounts.html#idp268011) * [Next](mobile-version.html#idp268030) ### Mobile Version Access your payments, payouts and transactions on the go. Client Portal for Mobile Features en/collect-383798.html Collect Create payments, refunds, and customers using Rapyd Collect. en/my-account-383806.html My Account Manage your account and transactions on the go. en/quick-actions.html Quick Actions Request a payment, transfer funds, or use the virtual terminal. In this section: Search results -------------- No results found * [Prev](adding-virtual-accounts.html#idp268011) * [Next](mobile-version.html#idp268030) --- # Activating Your Rapyd Business Account [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Rapyd Business Account](rapyd-business-account.html) * [Onboarding](onboarding.html) * Activating Your Rapyd Business Account * [Prev](signing-in-to-a-rapyd-business-account.html#idp266824) * [Next](activating-your-rapyd-business-account.html#idp266852) ##### Activating Your Rapyd Business Account Activate your Rapyd Business Account in the Client Portal. The owner of a Rapyd account and all invited users can access the Client Portal. [###### Activating Your Account](#idp266852_body) 1. Navigate to **Activate Your Account**. 2. The RBA Price Page will appear for the first time only. 3. Click Verify Your Account 4. The **Activate Your Account** page appears. 5. Enter your country and company name. 6. Click **Start**. ![64808cc2bfc36.png](image/16763ca55eff39.png) 7. Complete the KYB Process found in [Get Started](get-started-with-rapyd-business-account.html "Get Started With Rapyd Business Account") . 8. The **Set Up Your Account** page appears. ### RBA Pricing * Rapyd Business Account: $99/month after a KYB approval. * Sandbox testing available for free during sign up. In this section: Search results -------------- No results found * [Prev](signing-in-to-a-rapyd-business-account.html#idp266824) * [Next](activating-your-rapyd-business-account.html#idp266852) --- # Retrieve Apple Pay Session [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * [Digital Wallet](digital-wallet.html) * Retrieve Apple Pay Session * [Prev](digital-wallet.html) * [Next](retrieve-apple-pay-session.html#idp328264) ##### Retrieve Apple Pay Session Retrieve the details of an Apple Pay payment session. Each payment that uses Apple Pay has a unique session. Prerequisite: [Activating Apple Pay](activating-apple-pay.html "Activating Apple Pay") [###### Parameters](#idp328268_body) [###### Request Header Parameters](#idp328270_body) [###### Request Body Parameters](#idp328330_body) * * initiative\_context * The client's fully qualified domain name, without the final period. For example, **acmegeneralproducts.rapyd.net** [###### Response Parameters](#idp328348_body) * /v1/digital\_wallets/session/apple\_pay * Retrieve Apple Pay Session * curl -X post https://sandboxapi.rapyd.net/v1/digital\_wallets/session/apple\_pay -H 'access\_key: your-access-key-here' -H 'Content-Type: application/json' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' -d '{ "display\_name": "Acme General Products", "initiative\_context": "acmegeneralproducts.rapyd.net" } ' * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "1d6372ba-530d-4195-be1e-ef50d91d0f91" }, "data": { "epochTimestamp": 1646630045189, "expiresAt": 1646633645189, "merchantSessionIdentifier": "SSHAF97FDFD687E4E308A5DF0D252842CCF\_916523...", "nonce": "7c059ca3", "merchantIdentifier": "2CA5870D7643C62D793F32133FFB35E85B69D1E23EEB49EBB989976C4A3F3367", "domainName": "www.acmegeneralproducts1234.com", "displayName": "Acme General Products", "signature": "308006092a864886f70d010702a08...", "operationalAnalyticsIdentifier": "name:2CA5870D7643C62D793F32133FFB35E85B69D1E23EEB49EBB989976C4A3F3367", "retries": 0 } } ### Note In the example response, the `merchantSessionIdentifier` and `signature` are truncated. ###### Related Information * [Customizing Hosted Pages with Apple Pay](customizing-hosted-pages-with-apple-pay.html "Customizing Hosted Pages with Apple Pay") * Refer to this Apple Pay article: [Requesting an Apple Pay Payment Session](https://developer.apple.com/documentation/apple_pay_on_the_web/apple_pay_js_api/requesting_an_apple_pay_payment_session) . In this section: The number of seconds elapsed since the beginning of the Unix epoch, which was 00:00:00 GMT on January 1, 1970. 10-digit integer. Search results -------------- No results found * [Prev](digital-wallet.html) * [Next](retrieve-apple-pay-session.html#idp328264) --- # Monthly Flat Fee [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Rapyd Business Account](rapyd-business-account.html) * [My Account](my-account-383783.html) * Monthly Flat Fee * [Prev](account-summary.html#idp267500) * [Next](monthly-flat-fee.html#idp267540) ##### Monthly Flat Fee The Rapyd Business Account will begin charging a monthly fee of $99/month after your account has been approved. This charge will be deducted from your RBA Balance. You will be charged for each month on the 10th of the month. If there are no funds in your account, then a negative balance will begin to accrue each month. **Note**: See [Activating Your Rapyd Business Account](activating-your-rapyd-business-account.html "Activating Your Rapyd Business Account") for more information about account activation. [###### Balances in Available Currencies](#idp267540_body) The charge for the monthly flat fee is deducted from your available currency balance. The flat fee currency defined in your account will be deducted first. If you do not have a sufficient balance to cover the charge, the full fee amount will be deducted from your balance in other available currencies. If there is not a sufficient balance in any available currency for your account, the flat fee will be deducted from the defined flat fee currency. Your account will accrue a negative balance. You will receive an email notification from Client Portal after the first failed billing attempt and negative balance. After two consecutive months of a negative account balance, your account capabilities will be restricted. You will only be able to add funds to your client wallet. You will receive a second email notification from the Client Portal after your account is restricted. If funds are not added to the client wallet before the next payment deduction, your account will be subject to suspension and automatically set for offboarding. ### Final Account Closure Each month Rapyd will check to see if funds have been added to your account to cover the negative balance. This will occur after two consecutive months of a negative account balance. If funds have been added, the count toward account closure will be reset. If the account balance is still negative after 4 additional months, your Rapyd Business Account will be **automatically deactivated**. You will receive a third email from Client Portal before your account is deactivated. This will happen after having a negative balance for 6 months in total. You will then receive a fourth email notification from Client Portal informing you of the account deactivation. In this section: Search results -------------- No results found * [Prev](account-summary.html#idp267500) * [Next](monthly-flat-fee.html#idp267540) --- # Digital Wallet [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Collect](rapyd-collect-363484.html) * Digital Wallet * [Prev](refund-errors.html) * [Next](retrieve-apple-pay-session.html) #### Digital Wallet Information on supported digital wallet providers such as Apple Pay and Google Pay. ### Note The customer must open Google Pay in a single window. Methods * [Retrieve Apple Pay Session](retrieve-apple-pay-session.html "Retrieve Apple Pay Session") - Retrieves an Apple session object. In this section: Search results -------------- No results found * [Prev](refund-errors.html) * [Next](retrieve-apple-pay-session.html) --- # Hosted Card Activation Page [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Issuing](rapyd-issuing-365115.html) * Hosted Card Activation Page * [Prev](card-issuing-reversal-webhook.html) * [Next](activate-issued-card-using-hosted-page.html) #### Hosted Card Activation Page Provides hosted pages where a customer activates a physical issued card. [PCI](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_pci "Payment Card Industry") certification is not required. Methods * [Activate Issued Card Using Hosted Page](activate-issued-card-using-hosted-page.html "Activate Issued Card Using Hosted Page") - Create a hosted page where the customer can activate a physical issued card. In this section: All financial institutions that issue cards or process card transactions. The Payment Card Industry Security Standards Council develops and publishes regulations for the industry. Search results -------------- No results found * [Prev](card-issuing-reversal-webhook.html) * [Next](activate-issued-card-using-hosted-page.html) --- # Viewing Payment Methods [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Settings](settings.html) * Viewing Payment Methods * [Prev](settings.html#idp250967) * [Next](viewing-payment-methods.html#idp250977) #### Viewing Payment Methods View active payment methods using the Rapyd Client Portal [##### How to View Available Payment Methods](#idp250977_body) 1. Sign in as described in [Signing in to the Client Portal](signing-in-to-the-client-portal.html "Signing In to the Client Portal") . 2. Navigate to **Settings** > **Payment Methods:** ![payment-methods-blank.png](image/16763ca416e5af.png) 3. Toggle between production and the sandbox environment. * If you are in the production environment and select **Payment Methods** you will see all of the payment methods your company is currently licensed to use. To add more payment methods, see [Request a Payment Method](viewing-payment-methods.html#UUID-60fe49b9-927b-e16a-05de-9e9e37367f06_N1692125156614 "Request a Payment Method") . * If you are in the sandbox environment and select **Payment Methods** you will see all available payment methods. **Note**: To move into production you need contact sales, to add your Account Activation page. 4. You can change how the payment methods are displayed: * Use the **Card** view to look around the payment methods by region and country. ![pmt-europe-sand.png](image/16763ca4178249.png) * To view payment methods by row, select **Table view** . ![payment-methods.png](image/16763ca418196e.png) * Under Table view, you can choose which columns to display, and select the **Customize Columns** icon in the top right. * To filter the search, click select the **Filter** icon within the search bar. ###### Activate / Deactivate Payment Method You can activate or deactivate a payment method by going to **Settings** > **Payment Methods** > **Supported** tab in Production. In the Card view, you can search up any payment method and click the switch on the card. Once you click the switch to activate or deactivate a payment method, a window appears. Click **Yes**. ![deactivate-pmt.png](image/16763ca418b5be.png) [##### Request a Payment Method](#UUID-60fe49b9-927b-e16a-05de-9e9e37367f06_N1692125156614_body) 1. To request a payment method, navigate to **Settings** > **Payment Methods** > **Advanced** > **Request Access** . ### Prerequisite: Submit Your KYB Your KYB for Account Activation should be submitted before requesting access to a payment method. ![advanced-pmt.png](image/16763ca4194363.png) The **Request Access** page appears. 2. Follow the steps to fill out your requested **Country** and **Payment Method(s)** . ![payment-request-access.png](image/16763ca419d311.png) 3. Select **Submit Request**. A confirmation dialogue box appears. ![6480891d5df7c.png](image/16763ca41a6b5b.png) In this section: Search results -------------- No results found * [Prev](settings.html#idp250967) * [Next](viewing-payment-methods.html#idp250977) --- # Modifying Bank Account Details [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [My Account](my-account.html) * Modifying Bank Account Details * [Prev](adding-a-bank-account.html#idp250517) * [Next](modifying-bank-account-details.html#idp250573) #### Modifying Bank Account Details You can modify most **Reporting Information** and **Bank Details** values for a bank account. The **Account Number** value cannot be modified. If the bank account number is not correct, delete the existing bank account and add a new one with the updated account number. See [Deleting a Bank Account](deleting-a-bank-account.html "Deleting a Bank Account") and [Adding a Bank Account](adding-a-bank-account.html "Adding a Bank Account") . You must have Owner or Administrator privileges to modify the details of a bank account. [##### How to Modify Bank Account Details](#idp250573_body) To modify bank account details: 1. Sign in to the Client Portal as described in [Signing In to the Client Portal](signing-in-to-the-client-portal.html "Signing In to the Client Portal") and navigate to **My Account** > **Account management**. The **Account management** page appears. ![modifying-bank-accounts-flow-1.png](image/16763ca4045d3f.png) 2. Under the **Accounts and settlements configuration** section, select the three vertical dots for the bank account you would like to modify. 3. Select **Edit bank account** from the drop-down. ![modifying-bank-accounts-flow-2.png](image/16763ca404f17c.png) The **Edit bank account** dialog box appears. ![modifying-bank-accounts-flow-3.png](image/16763ca40587c7.png) 4. Modify the values and tap **Submit**. The bank account details are updated. ![modifying-bank-accounts-flow-4.png](image/16763ca4062fd1.png) 5. Click the **Upload bank statement** button. Upload your bank statement for verification. [##### Edit Settlement Preferences](#idp250611_body) To change your settlement preferences: 1. Under the **Accounts and settlement configuration** section, select the three vertical dots for the bank account you would like to modify. 2. Select **Edit settlement configuration** from the drop-down. ![modifying-bank-accounts-flow-5.png](image/16763ca406d4d2.png) The **settlement frequency** dialogue box appears. ![modifying-bank-accounts-flow-6.png](image/16763ca4076849.png) 3. Select Daily, Weekly, or Monthly settlement frequency. 4. Enter the Minimum Settlement Amount. 5. Click **Apply**. In this section: Search results -------------- No results found * [Prev](adding-a-bank-account.html#idp250517) * [Next](modifying-bank-account-details.html#idp250573) --- # Identity Verification [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Product Guide](product-guide.html) * [Rapyd Verify](rapyd-verify.html) * Identity Verification * [Prev](rapyd-verify-hosted-page.html#idp246382) * [Next](identity-verification.html#idp246396) #### Identity Verification Securely identify your users. | `Enterprise` [##### Overview](#idp246396_body) Before you can assign contacts to user wallets, you will need to use Rapyd’s identity verification service. Once you create a new user wallet, you will need to verify their identity. The identity verification process requires the following contact information: 1. First Name, Last Name 2. Date of Birth 3. Address, Including Country 4. Official Identification Document 5. Nationality 6. Selfie picture [##### Verifying Identity Workflow](#idp246413_body) [###### Step 1: Collecting Customer Information](#idp246415_body) ![identity-verification.jpg](image/16763ca3bdae24.jpg) 1. You ask the customer for the country of residence. 2. The customer provides the country information. 3. Your website back end asks Rapyd for a list of acceptable identification documents for that country. 4. Rapyd returns the list of documents. 5. You ask the customer to scan or photograph one or more documents. [###### Step 2: Verifying Customer Identity](#idp246431_body) ![verify-customers-idv.jpg](image/16763ca3be368c.jpg) 1. The customer sends the images of the documents to your website. 2. Your website back end requests Rapyd to verify the identity. 3. Rapyd verifies the customer's identity and returns a confirmation to your website. 4. You notify the customer of the confirmation. [##### How Identity Verification Works](#idp246445_body) ### Prerequisites To run the examples of this use case, you must create the following ID in your own [sandbox](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_sandbox "Sandbox") : * **ewallet** - Run [Create Wallet](create-wallet.html "Create Wallet") for the customer's wallet. Use the **wallet ID** you get in the response. For more information, see [Creating a Rapyd Wallet](creating-a-rapyd-wallet.html "Creating a Rapyd Wallet") . [##### Getting the List of ID Documents for a Country](#idp246458_body) When the customer requests financial services that require a Rapyd wallet, you ask Rapyd for the types of acceptable identification documents for the customer's country of residence. For that, you'll use [List Official Identification Documents](list-official-identification-documents.html "List Official Identification Documents") with the following parameter: | | | | --- | --- | | Query Parameter | Description | | country | Enter **US** as the country code for the customer's country of residence. | ###### List Official Identification Documents Request You ask Rapyd for the types of identification documents that are acceptable in customer's country. * * Request * // Request URL: GET https://sandboxapi.rapyd.net/v1/identities/types?country=US // Message body absent * * .NET Core * using System; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { string country = "US"; string result = RapydApiRequestSample.Utilities.MakeRequest("GET", $"/v1/identities/types?country={country}"); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const result = await makeRequest('GET', '/v1/identities/types?country=US'); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); try { $object = make\_request('get', '/v1/identities/types?country=US'); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request country = 'US' results = make\_request(method='get', path=f'/v1/identities/types?country={country}') pprint(results) ###### List Official Identification Documents Response Let's take a look at the response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "c34e0097-47cf-426e-ad7b-9181310824df" }, "data": \[\ {\ "country": "US",\ "type": "DL",\ "name": "Driver's License",\ "is\_back\_required": true,\ "is\_address\_extractable": false\ },\ {\ "country": "US",\ "type": "ID",\ "name": "Identity Card",\ "is\_back\_required": true,\ "is\_address\_extractable": false\ },\ {\ "country": "US",\ "type": "PA",\ "name": "Passport",\ "is\_back\_required": false,\ "is\_address\_extractable": false\ },\ \ // ... \ \ \ \] } The `data` section of this response shows the types of identification that can be used to verify identity in the US. This edited example shows only three types. Each document is described with the following parameters: * The `country` is **US** . * The `type` is a two-letter abbreviation for the type of document. * The `name` is the type of document, spelled out in words. * `is_back_required` - Indicates whether the process requires both sides of the document or only the front side. * `is_address_extractable` - Indicates whether the document contains the individual's address, which also can be used in verifying identity. Your website shows the customer the types of identification documents he can choose from to verify his identity. When he chooses a document type, your website asks for the front-side image, and (if required) the back. [##### Verifying a Customer's Identity](#idp246549_body) When the customer provides the selfie and document images, you send an identity verification request to Rapyd. For that, you'll use [Verify Identity](verify-identity.html "Verify Identity") with the following parameters: | | | | --- | --- | | Body Parameter | Description | | country | Enter **US** as the country code for the customer's country of residence. | | document\_type | Enter **PA** as the code for the customer's identification document - his passport. | | ewallet\_id | Enter the wallet 'id' that you received when you created the wallet in your sandbox. For purposes of this use case lesson, we are using **ewallet\_4250f5f5f9492a9425cb2061fac8c2f1**, which is the wallet ID we created in our sandbox. | | face\_image | Enter the base-64 encoded image of the customer's face. In the example below, we show just the first few bytes of the multi-megabyte image. You can use the test image that appears in the **Test Image** tab, below. | | front\_side\_image | Enter the base-64 encoded image of the identification page of the customer's passport. In the example below, we show just the first few bytes of the multi-megabyte image. You can use the test image that appears in the **Test Image** tab, below. | | reference\_id | ID of the identity verification request. Must be unique for each request. Defined by the client. Maximum length: 36 characters.

In sandbox, to simulate success or failure, the string must contain one of the following values: success, failure. For example: 12345678success | We will use the default MIME type of **image/jpeg** for the two images. ###### Verify Identity Request You ask Rapyd to verify the customer's identity. * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/identities // Message body: { "reference\_id": "555", "ewallet": "ewallet\_4250f5f5f9492a9425cb2061fac8c2f1", "country": "US", "document\_type": "PA", "front\_side\_image": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMk=", "front\_side\_image\_mime\_type": "image/jpeg", "face\_image": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMSEhUSEhIVFhUXGBoVGRgk=", "face\_image\_mime\_type": "image/jpeg" } * * Test image * /9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMSEhUSEhIVFhUXGBoVGRgYGBcXFxcYFxcWFxcXFxgYHSggGB0lGxcYITEhJSkrLi4uGB81ODMtNygtLi0BCgoKDg0OGxAQGy0lHyUtLS0tLS0tLS0tKy0tLi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLf/AABEIALIBGwMBIgACEQEDEQH/xAAcAAABBQEBAQAAAAAAAAAAAAAGAAECBAUDBwj/xABGEAACAQIDBgMECAMFBwQDAAABAgMAEQQSIQUGEyIxQVFhcSMygZEUM0JScqGxwaLR8AcVFmKCJJKTwtLh8UNTc+I0RGP/xAAaAQACAwEBAAAAAAAAAAAAAAABAgADBAUG/8QAMhEAAgIBAwICCQQBBQAAAAAAAAECEQMSITEEQVFxBRMyYYGRodHwFCKxweEjM1JTov/aAAwDAQACEQMRAD8A9UpqbNVbaONEUZkIuAVza2yqzqrN/pBLfCriktUxoZffBVTO8WWxUEFwCLmVmHTqIow9u/EVepvW5jp2VC0ahyBcLmy5vQ2PagpJgssUqB/8dkxNKMOSqsEI4guLi4JGXodR6irMO97tGJBh7hpBClpPfY3uV5egINz5HwoLJF8AUkwvvSoc/wAToMWuFI1K6tfo5GbIRb7ve/cV02zvBwZY4I04ksmoBbIoGurNY2906AHpR1olo36VC2K3nkiieV8OQY5OG4z9yEKshy86nMNbCoT71smGTEmDkc9OILgH3T7vfX0oPJEmpBZSvQbjt82iiimfD8sq5ltICbWBF+XwIqe0N8Th5VjngK3AYlXzWBJHTKL2IOnlUeSKA5IMKasGXbxE8cSxhkkUyLIHFsi5cxtb/MO+tVMNvO+IdlwkHEVPekd+GnkFsrE/L9qOtBtBTelQzJvBN7MLhXLszqyk5QnDtds9iCDcWPftVDC75ySoXjwpIV0Q897ZyBewW9tetTWiakGtKhjD7zNPI8eGhEgj952fhrfXRbKxbofAaelTg3pV45WWM8SEEvExCsAt8xB1B6GprRLQS09qGNi71rikfhp7VdeGzAZh4hrft1t43rd3bxv0mFZjGUDi6gsDdT0OnS/hQ1qtho/u4LVKrTwjtVTEEJqxAHiSB+tFTTGcGhUq5POoFywA8SQBXSNwRe4sehuLH0otipCp6lZbXzC2mvbXprTRyxk2DqT4Ai/yoa0PoY1I1NGRtFdSfAEH9KhItjb4/CoppiuLQ1NUGkAvqNOvl31rn9JXLmDDL43Fvn0o2A70q4R4hT0ZT20IPXpXUt11GgufIePl0PyqWGiVOBXLjLlzZhl8bi3z6UoZlb3WB9CD+lSyUdqbNSNcS1QiO9qpbZNoXuqsNAwYZlKFgHzDuMpartKiAFU2iBMrZYgru4zCPndOI0Qe5IzLw447lc1goJGW1aW7+MaRCrx8MrYquUpaJheMWPhYobacl9L1r3pidKVIB5ltzZUkeMeCJQVxY0B91ebMzafcIY/6hT7sMUzPiSFjwedVube1f3h5kC4H/wAgr0MxPe+ZL/gP/XUfo7G+sdidfZnX+PypFip2hFGmeWbSw7iCLHcWHM0nE5ffDsQ2Utms2SwFgBYVu4+XCbQKZpBFIIlkD5ltqTmjYE6lSL20OvrRqcKbW9lbrbhm1/G2emfA3FiIiL3sYrj5Z6nqufBk0nmL41/oMySS504qrC5P1mVufJfVlAAPe1yO1dNorGNnQMJ2LNlGQyAqCL5gE7Zbj0uK9NbDMRYmOw6ezOnwz1E4Q9PZf8Pv/v0Hh9/agaDzDefFxtg8EqyKWEQuAwJFkQai+moI+BomnGHxeLkiMiMHw6AZWUnMHka6/wCYAg/GigYLyi/4f/3qSYQjUcIHyjI/56ZY97G07nnezNlzpiWwbt7sEwjbtaTIMw8rjp2N6s7oz8GHEYd5BBMrl+bLe2VRcBtGHIR6EWo9OHYsGJjuLgHhm4B6gHPpew+VQmwRf3xE34oif1egsVcMChQK7n7YlmhmmxEoyKcouFVRZQScwA7m1Uf7NbNFOmYZiR3F7FbXt60djDtbLeO3S3DNvS2emjwhU3XhA+UZH5h6Kxu1vwFR43AncaQYV58NORHICHGYgBgBlJUnqNAb+frWfERJNjsWpAg4UsYc6K7sAAqn7ROUn4ivRZ8HnsH4TfiizfK712GEZhkPDK+HDOXy0z2pfV0kvAKx7UAe1djlYotoYRhmRFMmWxDAKAzadfBh4a9qM9yVtgcN/wDEv6VoQ4MqLKYwPARkDz0z13wsORQgygDQBFyKAOwFzS0rtF0cel2WFoP3lxeG+nQx4qSBY44JZSszRgZ3eOONgH00VZh8aL81RMak3IBPpULTzbCYAyyQxRRIIs+JxUUcqERrEMsEfIByhjNI6i2gPQWtXXYGGzPhxyK0mJmxEsUaZEjbCxfRmjA75ZTES/2jrYAgV6JYXpKg62FEB51g8R7AhhaHZnGLjs0sDSjDr5hIlWS1uskJHSobLaLDYYssmAmkw+GZ/ZKpxBdI7ZiwckksbE21Ledeksg8BrTJAo6KPkKBAE2RsIw4nBwOkEfBj4kbxx+0maJODIjSH3bCRWI1L36jKb6i7UhXaM/FniQpFDCis6K2Z2klewJubhoflRXl8q5tEpNyov42FAJ5+4ieUS4gr9Hmxk2bPYRs+HRcNDG5OhUtC7gHQsq97Vy20+EJjEBw8ccuJLu0uX6NL9HhJLIMwD+04SkjqUPW1ekFARYgEHtbT5UzRKeqg28ulSyUee4zZ6YgQQRSYYF3kn4mFUKo4EZWNtGa7JPNE3XsBbrVb6UmKSWWciBpZoYVMiq8QkwqLKYpQxAK8dpktcXK6G9q9IZFA0AFcXCkWIFj27H1FMlYrdHmk+KhYRp/skObFO8hZg2Fn+jwhc6AlQRneIG3242uWtcnW7eHjMWZDhjcnmwyhYzbTWzG5GverxRTYFRYadB+VWY7AWXTy6UWmibMryREVUYa1qlr9aqNCL0yl4i6PAhVfaMhWN2U2IFx/Rqyayt65imEmZTZshCk9mOik/EirY8lE70ugL2jvrMr5InXlNnkZVKpZgGAAtmI1uSQARbU3AwYt+8TmYjHhiC1gY4RGbWsobhLe+v2hbTrqaHdvzHiR4csGRMo0OjFnNhmy3IAsAe1z61ob6bSZMOsRhiSNjlXK5YhktmsAoAVTcedxoNbNJ3b8CmFx0x5v3/f+A62fvXM7mJ5FEg+6FKNYXOW4uCPA9tQWsbaX97Tff8A4U/lXkG721GEWW/1TB101NkZlQkDNlBQi3Szm+letw4MkZmOVeuvU/CrYZcSjc6RmzYc7yKONt/F/iOn97Tf+5/Cn8qQ2vN9/wDhT+Vc+Jh7EIxdh9m+UnyXSxPleuSyxN0WVR4mxHx0FvnVX67pr/wO/R3W1d/+iz/e8/3/AOFP5Uv73n+//Cn8qqBAdUYMPK4/I1GteOWLIrhTMOX9RidTcl8WXRteb7/8KfypDa833/4U/lVAVJas0R8EVeuyf8n82bO7e3GmeSN1a6E8xCgEAhbWHiSSDrfXuCK3DOuvMuhCnUaMbWU+BOZdPMeNC+5WHs0rZf8A1JNchXVmQkBs1iCFT7OuW960U3fQOGDsbScWxs3NeImxIuCTELnqczeNY0oOT1OvgdzDfq4s0ZNoRKodpFCnNZjoORWZiSegCqx18K4PtuAC5kC82WzKytmC57FWAYcuvTW48RXGXYQZBE7sVGfLYKCM6SIde9uJcegp8Tu/xipmllcq2YAcgFjGbAJaw5D4nnbppaxR6dPeT/OO3z4LFZb2pj1w8TSsGNrAKouzszBERQe7MwA9azhvQRZfoc5nzmNoA0GZbRiXMGMmR1KEWs3W46itLbeyjiIWRWyPmSRGtcK8UiyoWHcZkFx4XrDl2LjRL9I4uH+kGQubpJwVTg8FFUBszEasSSLknppWBu2XcIuLvxhy0Is4WZ4URzYC+IjeSPML3Hu5T5kU+H3uWSWOJMPM+ZEdivDPDErvGhZM2dhdDmZQQosSay13F0jjMt41VFJsQ7ZcLNAWFvdbPKHHhlqcO5c/+yhpoG4HBPEMR46NFJnk4MgIIWUWVg1wNet6DVBTbNCLe3/3cJPDaZcNq0T3la3KBE7HQEG/Tz0NcY9+4WRikcrtxMiIDFeUHj2dSXyqLYebRiDdLWuRW/szAGIzEkHiTNMLdgyoLHz5fzoLX+zpgrkPCz5kyLIjNEY0ixEK8RCfftiCxy6ZkB7mlGNubfOBXnjKS3iFhol5XBgVokXNcOHxEK2YC5fTQE12G8yrBiJpYZY2wwJlhYoXsEEgKsjFGBU6EHqCO1Y53BbiO/HGiAQtlYsJBLh588ovZrSQDpYkOQegrptDdrGTLOHxEIbEkpMFjbIIeGsaiMk5s62drk2JkNxoKKFYbSioK1SZrjwqK2ooLOsbXpzUUNJmpaDZOmBpg1TBoMILx7ySMFX6Ookky8IcUlGDmSxkbh3jI4TGwVuosT2qJvapdY2iYFsoBzXBfiyRSIDbUrwyw+8LnSxokXYmGCsgw8QVyCwyLZipzKTpqQdR4GuqbMhGW0MYy5ctkUZeHmyZdNMuZrW6Zj41v9d0quoP5v7v8777VuMvEEJd7mRQXgVSyxyKDKxXhSrKys5SJipHCa4CsNdGIBs23N7pIFhYYViJowwJaxV21ERyg3I09b6dKKotjwR+5BGvNm5UUc1ioOg62Zh6E+NOmCjUKqooVPcAAASwIGUdtLjTtVfUTwzjWKOl+PP9sswtQneRal4cEcBNI8SNImRioLKTcqSASt+9qRf0/OrJzVXddeg+dZwXb2I1m7ywGTCzIDYlCAfA/ZPwNjWnVTa31L/hNaIq2jJkdQb9x8+bdwri0ouW1zoou6WdiL6WzDUEC9soOo1rN3nwroMOrs3EK5uDkRQhY6kFLBizDwvpYnSvVMfshZGEgJSQEG41DW6B10uOnQg2Fr20qlHsKdpc5nUsxI1VytmGUqEz6DUkC5saefTtWZMfWRdePh7/AJAnu3sl2KQuAHmN3BFyiAFSdPdYAue+pRdCRXqm02UC128r9T8/dHam2LsSPDZglzays7EF3sNBYWCrr0AHW9tSTm7wbSjVsrSBW9dR5eWlcTNk1s9Dgx6EQjgLtoD8r/nYX+Fass+QqjnMD0vewPgddDVLYm1YlBfMhA63Yq3qCBb529a5LK2JkLRozN2PXTzPl/Os1mqjchw9zmRrN5jQ/vS2lhOUSBQD0YDoPAjyrjPh58OmbQkeNz/IX+NWNhbWXELqB3Vh2/PX56/vp6bM8ORS/KMfWdOs+Nwfw9zMkUhXXFRZHZfAkfDt+Vcq9SmmrR4qUXFtPk7bjyWnmj5AvOyhGYknie0aQFhrcqAQtgc4zG1EsccvtgW1JPCNhygxr0trYPmOuvwtQ7uWAZJDc5w0wtxEYW4kf2b5kOg6LbmFySBW9gc7mZZM+UsVW4ytl1BKslrA9tSwsCTc2XC17T2/H2PQYf8AbiCMGwXKqP7ucIBhxPETC/0mRJQ0kgvJlk5Q13cqWzi/TTp/hjFFlyq0OsbRnMrcAJPtKWGNgGNwizYdSoJFiVBIF6ns6KeJU+jsxZm2gG40s7rkimaOKxJYghFW3jqeutQXEsWUmTEfSg0QVC0uQ4U4aMu2S+QrrIS5F+ILXvYVlfJpXBPBbGxRmwsrYUiUBMxYxPHCDLO0mVw4kjdRJ0XOsnKCOpFL/DGIZEiWCTDtlgSdw0eaadcTA7YlSGOcoqSvnYAniAW0sN3+zfirxFmLqeFh3CNLNMpDoxadXm1BZiUaMABTF3zA0YtICdDQ7katcmVuZhZosNlxChZTNPIwUgr7SeRwVP3SGBHex1rdGlQV6TGlHJs1cmapNrXMJp1ooDG4h70mv4VMDxp2NNYtEVJtSy1ImnvQsNDhdOlMWv2rremJpbGo4h67oa4ldamposCtHakKgGpFqUJM1zMdOTSBok5Ilarve9WmNVJJNetCxkiBFVNrj2L/AIauVT2v9TJ+E1rh7SMWX2H5MDqsYAe0X4n8jaq9WtmITIAPP9K2dQ/9KXk/4OJ0qvPDzX8kN6do/RcLnH1jmyjzP2j6DWvM8IodryczMbknuaOd+8MZpVQH3eUD8Qb/AKL/ABoVwEIhktJzAeHb515lcHtorfcMN3NjwAq5QN3sdRf0NGyy2ACqAPAChTY2PgsQhB7gdNfCrU2+WGjHMG/Rf96q43ZfNRq0EGJGZSD3FefbMl4E8l8ws9mFvs9Q2vkOv8qJ9mbyR4g2TL8GB697A1V23ETK4XrYE6dUYWOvkyn/AHqkuRUux22yqkpKhBV1uCOht3HqCKzqtQyZ8Dhz90Bf4f8AtVa1el6GerBE8X6Tx6Opkl5nbc2L2srnsZFHLEOVmjawKuXtcE3IANxfUUUSY6NQWLghWCHLdiGJAC2W5vc2tWJupgmUu/EurM91yINSUKkMBm0AINyb3vpar8mzLlyJDmZ0caCwMb51Fu/Wx6aAd7kpphrep0dHA7xRLEe2oQQRIDm8mOXmKc+nJzKV5raqR1Bq9hdqRyZlRrsL3BDDoxUkXAzDMCLi+tYI2EpDqJWtKCJdFPEBkkdrfd1lcadiO4vV/ZGxo4HeQPctmBACj35DJz294gkgX6AnxqZYdOotqTvt+V+fQ0wcuCU+8OHikGHkcq+UMeVsi5hIy5nAstxE9r/d8xeOydrR4kMYywykZg6tGy5kEikhwCAUZSD5+tUto7rx4jFriuKAq5c6ZQSTGsiqM+awX2gLKVNzGvTW77A3WTDXZ5mZ86seG0kSHLGkaI0fEbOMq3ysSNbAAAAY06GcbLKb1YRljdZgRNKYY7AkyOHWMlR3QMy8/TUa6i97aO2YoGiSRwGmcRxra7MSQL2HRQWFz0Fx4is5tjjhlOL/APt/TL5fCcTmPr5Wv8bdq7YjZcZVVEzC2ITEEySNKboyvkUu3IptoBoPClHsgu9WHOYBpCQQoAikJkLSNEOEMvtBnRhcaaX6WNWE3gwzHDKsl2xQZoRYgsEQuxIIutgO9tdKw/8AB4zTOs0edyMns2yxgTGc3Cyg5ix96Mx262uWJ64HcqKF8LImIkBgy393LIqRSxgAW5BeZ2IBI5mHe4hAmPrXRUplXvXWmbAkQyVByFBZiAALkk2AA6kk9BXWqO18AuIiaJywVha69fLrobHWx8BRhTklJ0iNFqadUF2awJVbnTVmCKPUswHqa6XrE/uAXkJlY55IZdQNDBPxwNOpOik+Cr3GtLD7qrG0ZEg5JM4tGOnsbjVjqeCLsb9eXLYWvWLC17e/k/D77fUFtdjc2njDFE8gRpCouES2Zj0AFyAPMnQC5oYw2/AaXCoYgBPDh5XPE1Q4oEIqjJaQBgAxJXRgQDY1obwIC9j3S3zvQsm68F4ScxEKRoAcpVxCrpGz8vUB26WBzag6UixbXZlfVVJxoL9obdeLEQx8JDDKwQS8UZi2SR2KRBTdECczFltm0BtTbD3k+kpO6RN7ORkjUsoecCKOVGXNYLnEgsCdARe2tg2fYeHWUMvEC5DFwUESwZGJLplKZlDEknKRc2v0rphd3MOhcpFlZyWV+RjExRU9izDkPKD06/AVSpY7qy9vIlek0sf/AGgtACJcMvEV5VcLMWjCwRRyy5JOHzOOKI8pCjOCM3S+jtLfDhNiQYGtCsBQswUSnESvCpFgSsYZfeIJIuQp0uLHc+ExLA0kzKl1FzHfI2XPGbRjlJUEn3ri+aiLB7CimM+YupkSFbqQChgkeWJ00NmDtfW40GnW9rxUrKYdQpS00EOxNofSIElIUFrghXzqCrFSA1gTqp6gEdCAQRXaRNa57JwC4eMRqWYXZizEFneR2kdmsALlmJ0AGugAru7a9Kq4NaIGqm1/qX/DVs1T2wfYv+GtEPaRky+xLyYIVc2S9nv5EfMgVSvWhseHMzdha3zP/Y1q6x1gl5HI6BX1MPMy9r4gDExf/wBM2vYlRmAH+kv8vKgqbZbPM6SEkKSP+/npW7/aBieHBGy+8kiuO1uZvy5iPjWGcfmkD/etXnY3otHslWqmWsNstYsVh1VmVXYZgDpboDboOnaj7Gbpw8Quuhvp6HqK86O8UYxKsyXKlVDWJKgXva3iT4dq9Ow+03xDWVAqZQQ5bmLeGXwt39aR3yy5JduDth4kiFsov0vbXwGtZe2doCN2YC7FAo8Apaxv8SK08SeW50Ph50FbTx4E2Q/eVb/HUfpVVtsdpJBTsjDBoDGBbQso87lgP1FZ1608NPwyp8Ln5O4P6VT2jDkldfAm3odRXb9FZNpQ+J5f05h3jkXl9v7NzdkcjfiP6LXIbEZUxKrJZpxIFNiMjOZSG69QZB0t7t+pNd91/qm/Gf0Wru0Is8bqNSyMo1K6lSBzDVevUaitGSclKUVww9Mv9GIK7C3XljxGHlIjQRliwRgeW2KCooWJOpxAYtoDl1BKhjyXdDECWRwYwGnMt8wLWO0Y8WtgsSkERqRzs/NaxUXusFuZIVLEIjJCY4lAjW5LYu6O0aARqyzJfhgAmxty62P7hxMcnGhSJAoPDw4YcNSfpXDsQoClDKjWAKjiSAAkKayvk1rgWC3YnXDYmAph0MuFGGUofrJBHInEkYRqwDFw1mLsCz69LttDdHFuz5MRGQJ/paPMpdzLHh8NFCGWLhqtmSXm1sAnKxJtUXdHFqgjEiELGYBcsA8Z+kOpsSSGRnjUEk8ufyrUxO7ErYaCGILGUZ82kSWU3lXKMOiJ9dHDcBdRe9zrUYUZU+4s7PK7GIq8mLlC5n0+mDEK4vl+6MKNPCTyvCDczEggsUkbPmY5lBYLG0MZ9rDIt8gjB5eoOvjr7N3exKcfiFGE2HERAYgh4kVU63Uh2aZibC2YA37cF3am0DYeE24C5g4Byxi7MBb3k+rjHRLFxqbUE6I1ZobB3deHFNiWKEP9I0GUGPiziRQCqAyBlC3zk5CvLoxtl4jdbFSYTDw+yjlw2GeBWEjOrs0UUXMMi2RlWQEa2zKRciu2xN2sVE0ZPCDIZWEpGezOipYoGUsjHiSMAQWZ4yTdCD1/w7iswJMefiTOZszXCTRFWUL7wu5BADWAUacqVAhbECAB4AD8q6ihjdHYs2HZzLkF4oEOU3zPGmVyTa9hoovrYeAFFAFRkQxFQaulq5OKiI2OKYreo2rolFoCZgbcHtP9I/U1nlwil2NgAST4Af1+VaW3vrf9I/U1gbwRFoAgNsxufRbm37/CrMzrEjHhin1D91lPZuP4shKxu33dAB5ak2HxrVXDSxRtIcpOpKXv5nWh7drHohC5XLE2BAOVj2APjRPgtoNKSpgZV6EsR+nWue0dbsMJg6rIPtDX1rV3f95/QfvWHgY8odOwysB4e8D+35Vt7v8AvP6D9TXQxy1YTlTho6nz+xtNpVdr3qw9UnveqjYmdQb1T2v9S/4a74ZNKr7W+pk9DV2N/uRnzL9kvJghWvsQhUdibC4ufAAEk/nWTWjj04UAQmxY3P6t+Qt8Kt9JZFHDp8Tn+iMTl1Cl2X97ABvtiuKVA90mRf4TYfPLQnsrF8oQnVenp4fCiXefDMoVj0zs1u+pyi/mQPzoLkXK2nUGuPi3jR6TI6dhQmGZZFMcaMbA3Ynr6AUb7JjxDLe8EelgFDvb1uRXn2x9pgkLISO2htRxs7bWFw6EqmY+ZLH5XpJrtRpxyVWXdobYMaZH1cG2n2ibZQPifzoOmVmaa/vIVY+t9f1rd2ZHxZTPINLkqvgT3PnWJs6YPi51vpJdL9r65D8wfnVWnmhpOkr7hphM0ixt9luvzN/2NFG0cMJ4wRbiDUdifEH+uooM3QxDNFwdAykmM9iQNQT56CrWE2nOkjCSwAOXm0sb2tfSx/8ANNgyyxz1R7GbqMMc0HCXcKt2oyI3DAg5zodPsrXR9qQ5+Hn5uJwrWb38qsR07B116a9etWcE5sQwsb2t8BXGTZ8ZYsQblxIeYgFlEdri+v1SfLzN+1jyRyNzmnv4HMji9VFQTujlgtuROGNyoU5btaxN2FhlJIIym6mzAakVegx0bsVR1ZlFyFIJAPQnwv28azJNh4Z+pLHksS+YqBnyBc17jncC9+vkLXcFs2OJmZMwLgBgWJBCDKuh6WGmnbreny+o3cbvt9P8liTK27u80OMNolkHskmOcAWDs65DZjzgobjtca1uXrE2HsbDYW7QaZ+UksCCVUA/Gya+hrVikDC4II8Qbj51lGIYvHxxfWMFuGboeiKWY6eABqni94cPGoZ3yho5JlJ5brEUDgZrc3OLDvrVnHYaORcsguLMLXI0ZWRun+ViPjVDEYTDiwchbpNFzPYlcQyvN1OpLAG/atGKOJ1qT99fHj6fUVstnbMIbLxAWzKmUakFjlF7edwfAg1GXbMYxKYXUyOufTLZV57EgsGN+G/ug2y62uL1cPsELIzlzYtmRQCuQ8QytqSb3Ym+g6mpbV2HBLIJ5r2ChXUlRG6rxMnEuL8vFktYgc5vewsmZY016t2FX3Kc2++FV2Q58yzDDj3FDOTMvKXcAANBKvMQSQLAhlJJxQom6OEKzcOR1Sa+cI6ZTETMXjHKfZsZpST7wzaMuVQChXB6EG3h5gEfkR86pITNQpE0qagDUlpE0ymiCzC259Z/pH6mhzenEcKFXHUFWHwPN/DcfGiLbhHF/wBI/U9qEN8oy6kj3V5R+VzUzyWiKKMEH62cjLwG0sjxclwrhrg2A8NfQmjR9oKyFsy6a8pvbr8+leX7MxwQhW1W/kSPS9FxxomC2VsqjQdWdvsiwHj2rJOHY6OOdqzS3fxYe57s2U/EDX870UbDQhnB8B+9AO7WJsALgEovXs65lHzAo63exTNmz5SwABykG/ncduvyqzDNxTgZ82NSlGfgbUxt+lUlc/r+tdpmv8P3quyi517n+utPfiNXgTiaygiq+2ZQuHkY2ACknrb8ta7Rdr+ldMZGhQhwGU9QdQw8x3qRbTEatABgseJQQsEjgjRlVrAixurAgn5ircuKEnBMgZbOVswtfkNjqdf5it/G7QyjLF1tpbtQ7jopZEMrgswJuOtgNQR5/teq+p/crbLOnSg6ikkY+9ECuBJ0GY/HINPz/SvLMSdS3n+9HGM2iZSEOgAJFu+t3Prqb/iNDe2FR7LGALAEgeev6H51nw7OjTk4KGEw7N0FE+xdnEnQEmm2DgiEGb3u9u2ug+VGOxocuqi57dh8TQyuTdIvwRio6myWH2RK5WIEorAl36ZFFvmT+xoZ2xgkwuJkkgBEKABST0awAJvqzXu1h+VEk+1WjW87qGYWKrzm/gptr6WNYO3MdK4U8EKApEZcA5R9qy/ePUk66i9aY4koaWY8udynqRy2NtYxDKAAchksdQbAWFx0uO3nRXFtoyR2bKVPVJeo/A4/Qn59sXdPZQlyvI1yQCLW7gH969AwO7URtZBp41WsFMLzWh91Ma00TFr3VsoJ7gKtj+ddv7nQyFzlIM4xFioOoiRALnwdFe/+UDtWjFghDyjvr+37VU2ThpVaUyNcFyU1vpdj3JsLFRYW93oO/QwycItp1t8zLJWzFO7Ei3aOWxtKFyrYgCMx4RVubezDMddMxvpV3YWAkVuLIpU2kXI0jOygyBkFyWBFge+mnoOUWzJRbkAcMpeTiH2pEyvfL+EH3hdb5RcVDDYfaAK5nvZ9QTGOQrD7xAOoYTEWBvcaLcFehOcskXFzj8dn38L+vHuFW3Yy4t1cSRET9HiyvKWiQuY7SYd4FMbKqCOyZI8uRrAFsxJIJXu5g3hgWN8oKl7BTcKrSMyJmyrmKqQC1hcgnzqOxkmWICc3e5101Ha4XQd+5/YXxXNnDS2rvyGsp7Y2bxwAGykLIt9ftxsnQG1wSDfyqgdiyK0LKVPDSRCMzL9ZJG4sQpuAEtaw+HSu+1BiOIrQtyhTmUkAHlk6XNsxZozqCOQ6i5vQx8M7PA7qWyxuJAvDtnLREGzOB0VtRe1/OtmHUlFa1W/w2fl+MWTXIm2RiXznjyJ7V8gz2Ij5sh5cwJDM5A0JXIDYrp0xOyJ2gxUWfOZc2TMzHKSSbElTlGoFsptbq3QVcdDjSsqiRiHDWymJWGY4oAAlbBQDhib66Na5uCtv4DEPNFLCTlThI65gA6fSEeQ2uOZQisD3AYdWqdRKWmm4u/D4ETQ2zNi4mIMpSLLKkqOeKxaMSSSPcWgUSn2ngnhr1O1u5gZoxK04RWkdGyxszqAkEMPvMq3JMZPTQECg7C7DxYCZQ0UiGIu5kBE88SzEzlVY8jsUBvZiGIIAUVb3N2bPDNmnhYHhQqHJhcLlwuHjdM+fiX4iPoFynrfWsOkOtB4TTVyD1yxOKWNS8jBVUXLHoPWiot7ImosmmtWfiNrxKjSZrqriI5dSHMgiC+RzkDWkNrwgXeVE0zEOyhgvMbkX0Fkc3/ynwNWeqnV0wWjP24sRmsVDSZQBmuQBrbTp4+dCm8kckeWNhyyDTW3bVQO3b8qlv5jpY5hi4UaSMLGistihdpGQLmBv1IHQ1jYvbz4rhgx5XYql3kGbPI00YES5edM0TAtcW62NjVM4XsyKTTszdl4ZDI97aa5T1AHWioY5IcqJlzEXAHvdCCS32dD+tDqbNxEWVRhJHlmVyGFiqhRfKgB5m8ew0HjVhcDicTDHOkDDEKXQJyjOYpGQi50BDKb9uoqKEbsLnLTpL2AwCtiSktkudALgHS9rnyI0869D2ZsxYbsCSWFtTfSvNcRt54wkRw0bc7h2ZmeI8J1RmiYKCxBY/d1Rh4UQ4Hb08IxaPhLvBGJQkbszEM0irxWlNo7hM+hPLfqdCWkKrvcNMSbCqXMPd6eo760+Hk4yIx0zKrWHYsAdPGoG57H4WtVLaNCTL8C9/wA/67Vn7y4gphZjexysR8KswuCpGtumnbz8rGsffJ/9gxBLWtE2ovcW6nTXsKZMQGtgbbzuF6dL+NHjyQQoSWUG1yTqFuNCwv49B1PQXrwvZO0VU3OIjAHc2v4m3j18KM9i7fgmcBpHkIGjNovgcosAD4m2tMAHtoxt9LkMceSLldA3WwUJe4+01iW8z5Chvbci5iyDLqVBB62Otj3A/X0r0vejZHEjJjNmscp9eo+PbzArzHA7PbETiKxUKcrafVqpsfj19STSrHG7G1uqNjdDEtkfNdvD/wA0S7Lkk4Jtb6xxb0drD5i1Z23doRYaLhQKB9hfEkDUnxtf4k+tY+522CknBckhySO+upYH11Pz8qeu4pVwe1245eZuV+V76BRfQgdgP0vRxijxIeA31pYBT4LpeS3cZTl/FYedC29mxxm48YuGNnQdQxNgw8QxtfzPnRzuxstoIEeY5nyBST2Vb5VB8r2v3uT30jIUU2PiME6S4dc8YUAp1Ki3QePj+3gZbM3xSyh1IcjVSQpB10ytZj49O9C0m3pzJlwzAWOt1DA+R/8AIrc2fPtVhmaHBpb7ZV8vrbiD9aBArGJMhzWIFha6st/E2YA9b9qy5MZOJMuXQzhARE5XhZYWLM4JA96Rb21a3QK1W8BKzAl50mYaExqFRTb3VsT66knXrV5RVuOajyrICmH2li0BaRGYMqkXVSBmkKseVEy5RlurE+8pvYGup25iCwXglNYCTkkayu0HEU3AsRxGF7CwQnqGCk5qBNaP1GNu3jQr27g7DtmfKjPFlLojkZZCFLIWMdlXNm6C57jpqBXBNs4hUuYy7WJ91gCy5vZqALhmIsCSRp50SMaiTTLNj/60VNvxBvE7dnQt7C4BFrBySpbELbpq3sVPX/1RYE2DR3mxmJikjMIZkKsJAq5jdpIURwbdVLG4+6XP2aI2NMBSZJRl7MaFvcDRjsYSRE8jSXBdZIwqI4n0hRsg5HjDqWu1gEa/Nc2N39ozyTpxGkCNGjBHupu0eYgoISLg9farYjoe5YtSvVFbjp7EXFKpGo0yFY4NV9o4JJ4zHICVN+hKkXBFwR6mu4qQpotxdrkWzMfYMRDrd+dlcm6kgpMZ1tdbEcRmPMDe9jpao4rYKyC/EcScMxB+XRGOYjKqheuU9L8i+d9WlerP1GRO0wp0UsTsWN4TBmcAvxc4IziXi8cSA2y5uJzWtl7WtpVLDbo4dOCAZCkKhViJUxsQXYOy5fezOSQtgeW4OUW3QTUgKzytu2PZUg2REhhMaCMQ58iIFRBxPf5QPG50tqTVQ7tQGIx2Oa8xWXl40f0h3eXhSZeTWRgLdrdetbK04FKNYMtuXAVhRnmZYbKoJjF4w8TiFgqAZA8KNpY6HWxIqzhd2VjXEATTMMRnLh2Q6yaMwIQG9uUXJsABbSt7LTN0pZcBjuzNjhCBVXoigC/lYC+ngK4ytqbAW9T/ADqy7WJ/P06/tWe8+U2OvwH/AEmqO5oRahn1sLADqB8KfHwLLG6Ot0bRgT1Hhym9UgCo5h10v+dWCiMvMxAIILAkEE/dPjQ1b0Vg7Puvs8HM2GRAOt2YD82qvhIdiIxu+GD30CTMzX6HRXOtVDsrDx4dHMKz4ggRo895mecnJmJkuVXMCxt0AYjpRJEzmb6NBycoaWRQo4cZJHKLe85UhewCu3YA2RbsBo4HD4aaMNECyXI14g6aHR7H41FN2MIGZxCAzG7HM4zHpc2Ota8soVWdmCqoJYkgBQBcliegA117VMi3WrQA/itysBIbvhwe988nx6N5VlbL2HsWSXLh0jaQXsVeUg5dGyPmysR3AJtWxiIvpkrxH/8AFibLINf9olGpjPjEmmYD3mup0Vg1h2EmKjiQDJhgZGtoFkdDHFGO31byMR2Bj+8KFho5ndXCZg3BFwbg5pOvpmtVybZcTDKy3Hhdh+hrExUuNnbj4Mx8PWOIOCyuul52AkS6lgApGYhQWAbicpNwz40QGVht3cNEbpHlPiGe/wAy1dsVsWGX6wM/4nkP/NVwjXr5VI6aUQFbA4COBSsS5QTc6k62A+0T2Aq4DUKZnqUSybPXJmpM9hcnTxqpiNoQoFLyxqG90s6qG/CSdfhTRi3skK2Wqga4RY6NnMYkQuOqBlLDpe6g3HUfMV3YUzTXIlDKKlampiaFkocVK9RApGoQVPTUqgByKVPamsaNgoekKRWkL1LJRNamKgKlelYyJ1ICoZqWagEmxqLMMtcpZKqzYgL1IFVzZZAjiG0IvYm2mt7fzqhwx3v8wPyqy/MLhu99R/X9Wqsz+GtUpMu1IQXMdQfQ1ZaRQL218Sen9ftTk9ehNcXUEHT18jVKbuyswNk4GR5y0q+zieXgi45uLI7cXy5GVBexHtPEVtS7owSO0zSYhXZw5yTSRjSPh5QqmwBXqRr500KkC/8AVqux4gsRYG356elaIyIZ0P8AZ9gFAHBzEOZCzMWd7ljkdurpZsuU9QADfW+3srZMOHDCCFIwxuwUWBIFgTbyq6vSnq1EBXZEuLWCPDRYVo5FQCSefh8ISHWWRVRy0zM5ZrWVTm1YdK77V3Nw+Jw64aYysoZnY57NJIwIMkhAszXOYC1hoLWFqI6ZjUIDB3Iw5DBpcScyKje3cZimbK5C2GYZiALZQALKLCnl3Mw5Egz4glxcZp5XEb5AvFQMxu/KGzNfXpaiSok01CtgwdxsGxjaUSzNHfmmleUvdcvPnJ0HUBbAEA1OHcfCpbK2IQBnOVcRKqZXJZowqtZUub2WxPcmiMUxNGhbIwwKiKiKFVQFUDoABYAfCnZac0r0URlTGYbiRvGejKVN7kWIsbgWuNfGqE2y5LIFkGZUkju6M4Iky9s4OmXoSdOp71s0hVsMsocfnYSjFwWxmjdPaAxxszqMpzkshTmbNYgAtpbU2PbWjjt1y8jP7FgXzkOhJkvLFIFlPRggiyr10I6W1KgKa1DJllkdyGoDk3QdbHj6hY0N1azqigNmUNf3lQg3uACL6k1b2fuvGuQyrE2VJU0QA2klSQAMADYZWF+pzHzuSMKiEquibgf/AIMfm9uDmMp1XUCRAhsexYi7EeNtasYPdmWIcskRcIEztGQzDhRRsjEN7nIWUDoSunKcxVa1KpRAUj3TYFvbAAhhotr5iCM3iLAKR/lGvYWpt3dQRwiA0zEOrMWExkORiT0u4JPivQ30IbUrVAGJsLZD4dmZ5eJmihj90rYwhwSNToQw08je5N63KYrSAqA7jmlpSpiaIR8tPlplNOxtQJQI4XdOWMkRYto7mR+VcoLvGiIzgMA4Vkza6kGxPcvtjdEzTCTjsLQpDZhnJMbh+IWJ97rY/eObqAQTFyb26jt41QbGXcaEW0NIxzI2xsEySpLxiGDxsSyhmJi4moGiA2ew5bDU2uaxdqbmtO7OZwCTMTaMANxI1TnFwL8t2a2tyNBpRlJPfr0veuUpUi51NtD+3hVbHRg7C2V9GzjiZ82U3tbVVC3bxJ8fAKOgArQaRr6Hz0uOuvjTAC/9f0KRnt978qUdG24974/vVRjpf0pUqpXIg0nQ+h/WtDZppUqeBFyaNNSpVeMMDTU1KmQjIjvUaVKmQrE1JaVKoAZqQpUqIBjUlpUqgR36CkKVKgF8jUx/r86alRAMhpUqVQAqcf186VKoERNPTUqCAM1RvSpUxCa0iaalSDHHCn9P3qhj+h9T+gpUqR8DooX0v6ftXRhyn0/elSpBjko5b+v7U4NKlSsh/9k= * * .NET Core * using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string\[\] args) { try { var requestObj = new { reference\_id = "555", ewallet = "ewallet\_4250f5f5f9492a9425cb2061fac8c2f1", country = "US", document\_type = "PA", front\_side\_image = "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMk=", front\_side\_image\_mime\_type = "image/jpeg", face\_image = "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMSEhUSEhIVFhUXGBoVGRgk=", face\_image\_mime\_type = "image/jpeg", }; string request = JsonSerializer.Serialize(requestObj); string result = RapydApiRequestSample.Utilities.MakeRequest("POST", "/v1/identities", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { reference\_id: '555', ewallet: 'ewallet\_4250f5f5f9492a9425cb2061fac8c2f1', country: 'US', document\_type: 'PA', front\_side\_image: '/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMk=', front\_side\_image\_mime\_type: 'image/jpeg', face\_image: '/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMSEhUSEhIVFhUXGBoVGRgk=', face\_image\_mime\_type: 'image/jpeg' }; const result = await makeRequest('POST', '/v1/identities', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ "reference\_id" => "555",\ "ewallet" => "ewallet\_4250f5f5f9492a9425cb2061fac8c2f1",\ "country" => "US",\ "document\_type" => "PA",\ "front\_side\_image" => "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMk=",\ "front\_side\_image\_mime\_type" => "image/jpeg",\ "face\_image" => "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMSEhUSEhIVFhUXGBoVGRgk=",\ "face\_image\_mime\_type" => "image/jpeg"\ \]; try { $object = make\_request('post', '/v1/identities', $body); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request wallet\_id = 'ewallet\_4250f5f5f9492a9425cb2061fac8c2f1' idv\_details = { "reference\_id": "555", "ewallet": wallet\_id, "country": "US", "document\_type": "PA", "front\_side\_image": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMk==", "front\_side\_image\_mime\_type": "image/jpeg", "face\_image": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMSEhUSEhIVFhUXGBoVGRgk==", "face\_image\_mime\_type": "image/jpeg", "request\_type": "store" } results = make\_request(method='post', path=f'/v1/identities', body=idv\_details) pprint(results) ###### Verify Identity Response Let's take a quick look at the response. * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "70d9e1a7-416d-45ab-bfee-95788f8d1bbb" }, "data": { "id": "kycid\_6899d0a145c264bdb04fc7dc421a03f3", "reference\_id": "555" } } The response shows that the request to process the identity verification was successful. The `data` section of this response shows: * `id` - The ID of the Rapyd identity verification request. This is a string starting with **kycid\_**. * `reference_id` - The merchant's ID for the verification request. Note that the verification process is not complete until you receive the confirmation webhook. [##### Confirming the ID Verification](#idp246670_body) When the customer's identity verification is complete, Rapyd sends you a webhook with the verification details. Let's take a look at [Webhook - Identity Verification](identity-verification-webhook---sandbox-approved.html "Identity Verification Webhook - Sandbox Approved") . * * Webhook * { "id": "wh\_43f74f800f28020c8d6fb07300efe132", "type": "IDENTITY\_VERIFICATION", "data": { "id": "kycid\_6899d0a145c264bdb04fc7dc421a03f3", "state": null, "images": "v1/kyc/identities/images?reference\_id=1244874", "country": "US", "ewallet": "ewallet\_a53642921c9d4bd8c9f35e7aa01aacf2", "id\_number": "835714121", "last\_name": "Doe", "created\_at": 1549462299, "first\_name": "John", "reference\_id": "1244874", "date\_of\_birth": "1984/07/31", "document\_type": "PASSPORT", "reject\_reason": null, "request\_source": "WEB\_CAM", // ... "expiration\_date": "1848614400", "face\_validation": true, "document\_sub\_type": null, "verification\_status": "APPROVED" }, "trigger\_operation\_id": "", "status": "NEW", "created\_at": 1549462299 } * For a description of the webhook fields, see [Webhook - Identity Verification](identity-verification-webhook---sandbox-approved.html "Identity Verification Webhook - Sandbox Approved") . Your website shows the customer that his identity was successfully verified. [##### Company Wallet - Verifying a Contact Identity](#idp246688_body) A company wallet can include one or more personal contacts. To verify the identity of one of those contacts, you must include the ID of the contact in the request. See [Wallet Contact](wallet-contact-365061.html "Wallet Contact") . You have the option to verify the contact the within the company wallet. Use the 'Verify Identity' method, and add the `contact` field as demonstrated in this example: ###### Verify a Contact of a Company Wallet Request * * Request * // Request URL: POST https://sandboxapi.rapyd.net/v1/identities // Message body: { "reference\_id": "121wpo234q12", "ewallet": "ewallet\_aefe9c471842245e438b0902ed9f7fd1", "contact": "cont\_241d6b40117716b525ec6dda72feee40", "country": "US", "document\_type": "PA", "front\_side\_image": "/9j/4AAQSkZJRgABAQAAAQABAAD", "front\_side\_image\_mime\_type": "image/jpeg", "face\_image": "/9j/4AAQSkZJRgABAQAAAQABAAD/=", "face\_image\_mime\_type": "image/jpeg" } * * JavaScript * const makeRequest = require('/utilities').makeRequest; async function main() { try { const body = { reference\_id: '121wpo234q12', ewallet: 'ewallet\_aefe9c471842245e438b0902ed9f7fd1', contact\_id: 'cont\_241d6b40117716b525ec6dda72feee40', country: 'US', document\_type: 'PA', front\_side\_image: '/9j/4AAQSkZJRgABAQAAAQABAAD', front\_side\_image\_mime\_type: 'image/jpeg', face\_image: '/9j/4AAQSkZJRgABAQAAAQABAAD/=', face\_image\_mime\_type: 'image/jpeg' }; const result = await makeRequest('POST', '/v1/identities', body); console.log(result); } catch (error) { console.error('Error completing request', error); } } * * PHP * /utilities.php"; include($path); $body = \[\ "reference\_id" => "121wpo234q12",\ "ewallet" => "ewallet\_aefe9c471842245e438b0902ed9f7fd1",\ "contact" => "cont\_241d6b40117716b525ec6dda72feee40",\ "country" => "US",\ "document\_type" => "PA",\ "front\_side\_image" => "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMk=",\ "front\_side\_image\_mime\_type" => "image/jpeg",\ "face\_image" => "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxMSEhUSEhIVFhUXGBoVGRgk=",\ "face\_image\_mime\_type" => "image/jpeg"\ \]; try { $object = make\_request('post', '/v1/identities', $body); var\_dump($object); } catch (Exception $e) { echo "Error: $e"; } ?> * * Python * from pprint import pprint from utilities import make\_request wallet\_id = 'ewallet\_aefe9c471842245e438b0902ed9f7fd1' contact\_id = 'cont\_241d6b40117716b525ec6dda72feee40' idv\_details = { "reference\_id": "121wpo234q12", "ewallet": wallet\_id, "contact": contact\_id, "country": "US", "document\_type": "PA", "front\_side\_image": "/9j/4AAQSkZJRgABAQAAAQABAA==", "front\_side\_image\_mime\_type": "image/jpeg", "face\_image": "/9j/4AAQSkZJRgABAQAAAQABAAD/==", "face\_image\_mime\_type": "image/jpeg" } results = make\_request(method='post', path=f'/v1/identities', body=idv\_details) pprint(results) ###### Verify a Contact of a Wallet Response * * Response * { "status": { "error\_code": "", "status": "SUCCESS", "message": "", "response\_code": "", "operation\_id": "2ca8ee32-1c6e-4a9c-9ee5-8111117b6440" }, "data": { "id": "kycid\_c4a223f0f92e72d6a0006deafd182d30", "reference\_id": "121wpo234q12" } } ### Looking for More In-Depth Technical Information? Want to see the Rapyd API methods and objects that you'll use? Visit the [API Reference](api-reference.html "API Reference") for more technical details. In this section: In Rapyd, the sandbox environment provides most of the functionality of the production environment, without using real money. Interested persons can use the sandbox to explore Rapyd's product offering or to test software integrations with Rapyd's API. Search results -------------- No results found * [Prev](rapyd-verify-hosted-page.html#idp246382) * [Next](identity-verification.html#idp246396) --- # Account Verification [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [API Reference](api-reference.html) * [Rapyd Verify](rapyd-verify-386565.html) * Account Verification * [Prev](rapyd-verify-386565.html) * [Next](create-rapyd-verify-application.html) #### Account Verification Activate a production account for a merchant. When a merchant sets up a Rapyd commercial account, they must provide background information, as required for the country and the business type. This information is collected securely through a hosted page. When the information is approved, Rapyd sends you a webhook with updated information. This is a [Know-Your-Business (KYB)](glossary.html#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_kyb "Know Your Business") procedure for onboarding merchants who use Rapyd via a marketplace. Rapyd clients use the Client Portal. Account Verification Methods * [List Rapyd Verify Application Types](list-rapyd-verify-application-types.html "List Rapyd Verify Application Types") - Retrieve a list of application types for a specified country. * [Create Rapyd Verify Application](create-rapyd-verify-application.html "Create Rapyd Verify Application") - Create an application for Rapyd Verify where the merchant provides information directly to Rapyd. * [Retrieve Status of Rapyd Verify Application](retrieve-status-of-rapyd-verify-application.html "Retrieve Status of Rapyd Verify Application") - Retrieve the status of an application. Account Verification Webhooks * [Application Status Change Webhook](application-status-change-webhook.html "Application Status Change Webhook") In this section: The process of verifying the identity of a business customer. Search results -------------- No results found * [Prev](rapyd-verify-386565.html) * [Next](create-rapyd-verify-application.html) --- # Rotating Your API Keys [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Developers](developers.html) * Rotating Your API Keys * [Prev](defining-a-webhook-endpoint.html#idp252431) * [Next](rotating-your-api-keys.html#idp252504) #### Rotating Your API Keys A guide to rotating your API Keys in Client Portal You can rotate your API Keys in the Client Portal if your API keys in sandbox or production were compromised, or if you wished to rotate the API keys regularly. You must have Owner permissions. For example, if you experienced a security breach where your API keys had been exposed to the public, you can rotate your API keys. This allows you to use new API keys. 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and tap **Developer**. The **Credentials Details** page appears. ![648089a8331d7.png](image/16763ca43bb54e.png) 2. Click the **Rotate API Keys** button. [##### How to Rotate API Keys](#idp252504_body) 1. On the **Credentials Details** page within the **Developer** tab, select the **Rotate API Keys** button. The **Choose when to revoke the existing key** dialogue box appears. ![648089aa4ec24.png](image/16763ca43c5ba8.png) 2. Select the time limit when you would like to rotate your API Keys in the **Within** field, ranging from **Now** to **Seven Days**. ![648089abecc9e.png](image/16763ca43cebfb.png) 3. Click **Next**. 4. The **Warning!** dialogue box appears. ![648089ade17c1.png](image/16763ca43d8820.png) ### Updating API Keys Make sure to update any script or program with the new API Keys, and accept Webhooks with either the new or previous API keys until the previous API keys are revoked. Not updating such scripts on time will prevent any payments that used the previous API keys. 5. Click the checkbox that says **I confirm rotating the API keys**. ![648089afeabc6.png](image/16763ca43e2a5c.png) 6. Click **Next**. The **Authenticator App** dialogue box appears. ![648089b1d8440.png](image/16763ca43ec6f6.png) 7. Enter your OTP. 8. Click **Submit**. The confirmation window appears. ![648089b3a0f13.png](image/16763ca4401f07.png) 9. An email notification will inform you the API keys have been rotated, and state when the previous API keys expire. The notification will be sent to users who have permission to view the API Keys. [##### How to Rollback API Keys](#idp252562_body) You can rollback your API Keys in production or sandbox in Client Portal. Performing a rollback of your API keys will delete the newly generated keys. This allows you to use your previous API keys instead. You must have Owner permissions to perform this action. You can only rollback your API Keys after rotating the API Keys. 1. On the **Credential Details** page within the **Developer** tab, select the **Rollback API Keys** button. ![648089b58ec44.png](image/16763ca440ba22.png) 2. The **Warning!** dialogue box appears. ![648089b77ec06.png](image/16763ca441597f.png) ### Rollback API Keys This action will delete the new API keys and keep the previous API keys active. Make sure all scripts and programs use the active API keys to avoid payments failure. 3. Click the checkbox that says **I confirm rolling back the API keys immediately**. ![648089b91ee2a.png](image/16763ca441e917.png) 4. Click **Next**. 5. The **Authenticator App** dialogue box appears. ![648089bb13bf8.png](image/16763ca4427aac.png) 6. Enter your OTP. 7. Click **Submit**. The confirmation window appears. ![648089bc95640.png](image/16763ca44310d8.png) 8. An email notification will inform you the API keys have been rolled back. The notification will be sent to users who have permission to view the API Keys. ### Note If you need more time to update your scripts with the new API keys prior to the previous API keys expiring, please contact support. In this section: Search results -------------- No results found * [Prev](defining-a-webhook-endpoint.html#idp252431) * [Next](rotating-your-api-keys.html#idp252504) --- # Reports Settings [Skip to main content](#content-wrapper) Documentation ============= _print_ Toggle navigation * [Documentation](index-en.html) * [Client Portal Guide](client-portal-guide.html) * [Reports](reports-367106.html) * Reports Settings * [Prev](setting-up-an-sftp-server.html#idp264569) * [Next](reports-settings.html#idp264612) #### Reports Settings Manage the Reports settings in Client Portal. [##### How to Manage Your Reports Settings](#idp264612_body) 1. Sign in as described in [Accessing the Client Portal](accessing-the-client-portal.html "Accessing the Client Portal") and navigate to **Reports** > **Reports Settings**. The **Reports Settings** page appears. ![64808c8f48342.png](image/16763ca552ae2f.png) 2. Choose one of the following under Select your reconciliation report type: * **Daily** (Default): reports will show the transactions and settlement activity in a day. * **By Settlement**: reports will show by the transaction type (will include only the transactions that are being settled). 3. Select one of the following under CSV file preferences: * **Comma**: data will be separated by columns, which represent the comma. * **Pipe**: data will be in one column, separated by a pipe. Example: One | Two | Three | 4. The Reports Settings will automatically save, and the next daily report will appear in your desired format. In this section: Search results -------------- No results found * [Prev](setting-up-an-sftp-server.html#idp264569) * [Next](reports-settings.html#idp264612) ---