Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(connector): [Paypal] implement vaulting for paypal cards via zero mandates #5324

Merged
merged 32 commits into from
Nov 25, 2024

Conversation

KiranKBR
Copy link
Contributor

@KiranKBR KiranKBR commented Jul 15, 2024

Type of Change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring
  • Dependency updates
  • Documentation
  • CI/CD

Description

This PR implements Vaulting for 0 amount while purchasing(Zero Mandate flows) for Paypal connector for Card payment method.

Additional Changes

  • This PR modifies the API contract
  • This PR modifies the database schema
  • This PR modifies application configuration/environment variables

Motivation and Context

How did you test it?

  1. Create intent for Card Zero Mandates
curl --location 'http://localhost:8080/payments' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'api-key:[API_KEY]' \
--data '{
    "amount": 0,
    "currency": "USD",
    "confirm": false,
    "customer_id": "customer1234",
    "setup_future_usage": "off_session"
}'
  1. Confirm
curl --location 'http://localhost:8080/payments/pay_60SHjaLSFUEaWiNJcJrP/confirm' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'api-key:[API_KEY]' \
--data-raw '{
    "profile_id": "null",
    "customer_id": "customer1234",
    "payment_method": "card",
    "payment_method_type": "credit",
    "payment_method_data": {
        "card": {
            "card_number": "4012000033330026",
            "card_exp_month": "10",
            "card_exp_year": "25",
            "card_holder_name": "joseph Doe",
            "card_cvc": "123"
        }
    },
     "billing": {
        "address": {
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "city": "San Fransico",
            "state": "California",
            "zip": "94122",
            "country": "US",
            "first_name": "PiX"
        }
    },
    "payment_type":"setup_mandate",
    "shipping": {
        "address": {
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "city": "San Fransico",
            "state": "California",
            "zip": "94122",
            "country": "US",
            "first_name": "PiX"
        }
    },
    "email": "[email protected]",
    "customer_acceptance": {
        "acceptance_type": "offline"
    }
}'

Response

{
    "payment_id": "pay_Sp1escySp2eyqbGygYpG",
    "merchant_id": "merchant_1731676053",
    "status": "succeeded",
    "amount": 0,
    "net_amount": 0,
    "shipping_cost": null,
    "amount_capturable": 0,
    "amount_received": null,
    "connector": "paypal",
    "client_secret": "pay_Sp1escySp2eyqbGygYpG_secret_dK0bKmkLmUwx1FWCmLY4",
    "created": "2024-11-18T14:02:57.181Z",
    "currency": "USD",
    "customer_id": "customer1234",
    "customer": {
        "id": "customer1234",
        "name": null,
        "email": "[email protected]",
        "phone": null,
        "phone_country_code": null
    },
    "description": null,
    "refunds": null,
    "disputes": null,
    "mandate_id": null,
    "mandate_data": null,
    "setup_future_usage": "off_session",
    "off_session": null,
    "capture_on": null,
    "capture_method": null,
    "payment_method": "card",
    "payment_method_data": {
        "card": {
            "last4": "0026",
            "card_type": null,
            "card_network": null,
            "card_issuer": null,
            "card_issuing_country": null,
            "card_isin": "401200",
            "card_extended_bin": null,
            "card_exp_month": "10",
            "card_exp_year": "25",
            "card_holder_name": null,
            "payment_checks": null,
            "authentication_data": null
        },
        "billing": null
    },
    "payment_token": null,
    "shipping": {
        "address": {
            "city": "San Fransico",
            "country": "US",
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "zip": "94122",
            "state": "California",
            "first_name": "PiX",
            "last_name": null
        },
        "phone": null,
        "email": null
    },
    "billing": {
        "address": {
            "city": "San Fransico",
            "country": "US",
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "zip": "94122",
            "state": "California",
            "first_name": "PiX",
            "last_name": null
        },
        "phone": null,
        "email": null
    },
    "order_details": null,
    "email": "[email protected]",
    "name": null,
    "phone": null,
    "return_url": null,
    "authentication_type": "no_three_ds",
    "statement_descriptor_name": null,
    "statement_descriptor_suffix": null,
    "next_action": null,
    "cancellation_reason": null,
    "error_code": null,
    "error_message": null,
    "unified_code": null,
    "unified_message": null,
    "payment_experience": null,
    "payment_method_type": "credit",
    "connector_label": null,
    "business_country": null,
    "business_label": "default",
    "business_sub_label": null,
    "allowed_payment_method_types": null,
    "ephemeral_key": null,
    "manual_retry_allowed": false,
    "connector_transaction_id": "5eh12569c1927492g",
    "frm_message": null,
    "metadata": null,
    "connector_metadata": null,
    "feature_metadata": null,
    "reference_id": "5eh12569c1927492g",
    "payment_link": null,
    "profile_id": "pro_xKby2vXlCSeMpUTBEsk3",
    "surcharge_details": null,
    "attempt_count": 1,
    "merchant_decision": null,
    "merchant_connector_id": "mca_Vl8v0mol6xSzWD1qt36H",
    "incremental_authorization_allowed": false,
    "authorization_count": null,
    "incremental_authorizations": null,
    "external_authentication_details": null,
    "external_3ds_authentication_attempted": false,
    "expires_on": "2024-11-18T14:17:57.180Z",
    "fingerprint": null,
    "browser_info": {
        "language": null,
        "time_zone": null,
        "ip_address": "::1",
        "user_agent": null,
        "color_depth": null,
        "java_enabled": null,
        "screen_width": null,
        "accept_header": null,
        "screen_height": null,
        "java_script_enabled": null
    },
    "payment_method_id": "pm_qdofRzU7yaacBmzeBOET",
    "payment_method_status": "active",
    "updated": "2024-11-18T14:03:01.133Z",
    "charges": null,
    "frm_metadata": null,
    "merchant_order_reference_id": null,
    "order_tax_amount": null,
    "connector_mandate_id": "5eh12569c1927492g"
}
  1. Make a card recurring payment using payment_method_id
curl --location 'http://localhost:8080/payments' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'api-key:[API_KEY]' \
--data-raw '{
    "amount": 100,
    "currency": "USD",
    "confirm": true,
    "profile_id": "pro_xKby2vXlCSeMpUTBEsk3",
    "capture_method": "automatic",
    "customer_id": "customer1234",
    "email": "[email protected]",
    "off_session": true,
    "recurring_details": {
        "type": "payment_method_id",
        "data": "pm_qdofRzU7yaacBmzeBOET"
    },
    "authentication_type": "no_three_ds"
}'

Response

{
    "payment_id": "pay_60SHjaLSFUEaWiNJcJrP",
    "merchant_id": "merchant_1731676053",
    "status": "succeeded",
    "amount": 100,
    "net_amount": 100,
    "shipping_cost": null,
    "amount_capturable": 0,
    "amount_received": 100,
    "connector": "paypal",
    "client_secret": "pay_60SHjaLSFUEaWiNJcJrP_secret_zASPTK21QAXc1qSaTYuv",
    "created": "2024-11-18T14:03:05.378Z",
    "currency": "USD",
    "customer_id": "customer1234",
    "customer": {
        "id": "customer1234",
        "name": null,
        "email": "[email protected]",
        "phone": null,
        "phone_country_code": null
    },
    "description": null,
    "refunds": null,
    "disputes": null,
    "mandate_id": null,
    "mandate_data": null,
    "setup_future_usage": null,
    "off_session": true,
    "capture_on": null,
    "capture_method": "automatic",
    "payment_method": "card",
    "payment_method_data": {
        "card": {
            "last4": "0026",
            "card_type": null,
            "card_network": null,
            "card_issuer": null,
            "card_issuing_country": null,
            "card_isin": "401200",
            "card_extended_bin": null,
            "card_exp_month": "10",
            "card_exp_year": "25",
            "card_holder_name": "joseph Doe",
            "payment_checks": null,
            "authentication_data": null
        },
        "billing": null
    },
    "payment_token": null,
    "shipping": null,
    "billing": null,
    "order_details": null,
    "email": "[email protected]",
    "name": null,
    "phone": null,
    "return_url": null,
    "authentication_type": "no_three_ds",
    "statement_descriptor_name": null,
    "statement_descriptor_suffix": null,
    "next_action": null,
    "cancellation_reason": null,
    "error_code": null,
    "error_message": null,
    "unified_code": null,
    "unified_message": null,
    "payment_experience": null,
    "payment_method_type": "credit",
    "connector_label": null,
    "business_country": null,
    "business_label": "default",
    "business_sub_label": null,
    "allowed_payment_method_types": null,
    "ephemeral_key": {
        "customer_id": "customer1234",
        "created_at": 1731938585,
        "expires": 1731942185,
        "secret": "epk_800fba496846468d90d460fc6c7ef7d0"
    },
    "manual_retry_allowed": false,
    "connector_transaction_id": "0NS73519V9830300P",
    "frm_message": null,
    "metadata": null,
    "connector_metadata": null,
    "feature_metadata": null,
    "reference_id": "pay_60SHjaLSFUEaWiNJcJrP_1",
    "payment_link": null,
    "profile_id": "pro_xKby2vXlCSeMpUTBEsk3",
    "surcharge_details": null,
    "attempt_count": 1,
    "merchant_decision": null,
    "merchant_connector_id": "mca_Vl8v0mol6xSzWD1qt36H",
    "incremental_authorization_allowed": null,
    "authorization_count": null,
    "incremental_authorizations": null,
    "external_authentication_details": null,
    "external_3ds_authentication_attempted": false,
    "expires_on": "2024-11-18T14:18:05.378Z",
    "fingerprint": null,
    "browser_info": null,
    "payment_method_id": "pm_qdofRzU7yaacBmzeBOET",
    "payment_method_status": "active",
    "updated": "2024-11-18T14:03:10.096Z",
    "charges": null,
    "frm_metadata": null,
    "merchant_order_reference_id": null,
    "order_tax_amount": null,
    "connector_mandate_id": "5eh12569c1927492g"
}

  1. Create CIT using mandate_data
curl --location 'http://localhost:8080/payments' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'api-key: _____' \
--data-raw '{
    "amount": 0,
    "currency": "USD",
    "confirm": true,
    "capture_method": "automatic",
    "capture_on": "2022-09-10T10:11:12Z",
    "customer_id": "cus_E9B0K9nWdTZCCunHqnFr",
    "email": "[email protected]",
    "name": "John Doe",
    "phone": "999999999",
    "phone_country_code": "+65",
    "description": "Its my first payment request",
    "authentication_type": "no_three_ds",
    "return_url": "https://hyperswitch.io",
    "payment_method": "card",
    "payment_method_type": "debit",
    "payment_method_data": {
        "card": {
            "card_number": "4012000033330026",
            "card_exp_month": "01",
            "card_exp_year": "25",
            "card_holder_name": "joseph Doe",
            "card_cvc": "123"
        }
    },
    "setup_future_usage": "off_session",
    "mandate_data": {
        "customer_acceptance": {
            "acceptance_type": "offline",
            "accepted_at": "1963-05-03T04:07:52.723Z",
            "online": {
                "ip_address": "125.0.0.1",
                "user_agent": "amet irure esse"
            }
        },
        "mandate_type": {
            "single_use": {
                "amount": 8000,
                "currency": "USD"
            }
        }
    },
    "payment_type": "setup_mandate",
    "billing": {
        "address": {
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "city": "San Fransico",
            "state": "California",
            "zip": "94122",
            "country": "US",
            "first_name": "john",
            "last_name": "Doe"
        }
    },
    "shipping": {
        "address": {
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "city": "San Fransico",
            "state": "California",
            "zip": "94122",
            "country": "US",
            "first_name": "john",
            "last_name": "Doe"
        }
    },
    "statement_descriptor_name": "joseph",
    "statement_descriptor_suffix": "JS",
    "metadata": {
        "udf1": "value1",
        "new_customer": "true",
        "login_date": "2019-09-10T10:11:12Z"
    },
    "browser_info": {
        "ip_address": "129.0.0.1",
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
        "accept_header": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
        "language": "en-US",
        "color_depth": 30,
        "screen_height": 1117,
        "screen_width": 1728,
        "time_zone": -330,
        "java_enabled": true,
        "java_script_enabled": true
    }
}'

Response

{
    "payment_id": "pay_yTWlhcxN6INTLac5OnDi",
    "merchant_id": "merchant_1731676053",
    "status": "succeeded",
    "amount": 0,
    "net_amount": 0,
    "shipping_cost": null,
    "amount_capturable": 0,
    "amount_received": null,
    "connector": "paypal",
    "client_secret": "pay_yTWlhcxN6INTLac5OnDi_secret_dXNkbgW6FJvwJflz3lFj",
    "created": "2024-11-20T13:58:32.885Z",
    "currency": "USD",
    "customer_id": "cus_E9B0K9nWdTZCCunHqnFr",
    "customer": {
        "id": "cus_E9B0K9nWdTZCCunHqnFr",
        "name": "John Doe",
        "email": "[email protected]",
        "phone": "999999999",
        "phone_country_code": "+65"
    },
    "description": "Its my first payment request",
    "refunds": null,
    "disputes": null,
    "mandate_id": "man_glXjMn3ygup05iRL4nHG",
    "mandate_data": {
        "update_mandate_id": null,
        "customer_acceptance": {
            "acceptance_type": "offline",
            "accepted_at": "1963-05-03T04:07:52.723Z",
            "online": {
                "ip_address": "125.0.0.1",
                "user_agent": "amet irure esse"
            }
        },
        "mandate_type": {
            "single_use": {
                "amount": 8000,
                "currency": "USD",
                "start_date": null,
                "end_date": null,
                "metadata": null
            }
        }
    },
    "setup_future_usage": "off_session",
    "off_session": null,
    "capture_on": null,
    "capture_method": "automatic",
    "payment_method": "card",
    "payment_method_data": {
        "card": {
            "last4": "0026",
            "card_type": null,
            "card_network": null,
            "card_issuer": null,
            "card_issuing_country": null,
            "card_isin": "401200",
            "card_extended_bin": null,
            "card_exp_month": "01",
            "card_exp_year": "25",
            "card_holder_name": null,
            "payment_checks": null,
            "authentication_data": null
        },
        "billing": null
    },
    "payment_token": null,
    "shipping": {
        "address": {
            "city": "San Fransico",
            "country": "US",
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "zip": "94122",
            "state": "California",
            "first_name": "john",
            "last_name": "Doe"
        },
        "phone": null,
        "email": null
    },
    "billing": {
        "address": {
            "city": "San Fransico",
            "country": "US",
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "zip": "94122",
            "state": "California",
            "first_name": "john",
            "last_name": "Doe"
        },
        "phone": null,
        "email": null
    },
    "order_details": null,
    "email": "[email protected]",
    "name": "John Doe",
    "phone": "999999999",
    "return_url": "https://hyperswitch.io/",
    "authentication_type": "no_three_ds",
    "statement_descriptor_name": "joseph",
    "statement_descriptor_suffix": "JS",
    "next_action": null,
    "cancellation_reason": null,
    "error_code": null,
    "error_message": null,
    "unified_code": null,
    "unified_message": null,
    "payment_experience": null,
    "payment_method_type": "debit",
    "connector_label": null,
    "business_country": null,
    "business_label": "default",
    "business_sub_label": null,
    "allowed_payment_method_types": null,
    "ephemeral_key": {
        "customer_id": "cus_E9B0K9nWdTZCCunHqnFr",
        "created_at": 1732111112,
        "expires": 1732114712,
        "secret": "epk_dbf275a33ca34bcca966486844bd0be9"
    },
    "manual_retry_allowed": false,
    "connector_transaction_id": "73768133cx377010c",
    "frm_message": null,
    "metadata": {
        "udf1": "value1",
        "login_date": "2019-09-10T10:11:12Z",
        "new_customer": "true"
    },
    "connector_metadata": null,
    "feature_metadata": null,
    "reference_id": "73768133cx377010c",
    "payment_link": null,
    "profile_id": "pro_xKby2vXlCSeMpUTBEsk3",
    "surcharge_details": null,
    "attempt_count": 1,
    "merchant_decision": null,
    "merchant_connector_id": "mca_Vl8v0mol6xSzWD1qt36H",
    "incremental_authorization_allowed": null,
    "authorization_count": null,
    "incremental_authorizations": null,
    "external_authentication_details": null,
    "external_3ds_authentication_attempted": false,
    "expires_on": "2024-11-20T14:13:32.885Z",
    "fingerprint": null,
    "browser_info": {
        "language": "en-US",
        "time_zone": -330,
        "ip_address": "129.0.0.1",
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
        "color_depth": 30,
        "java_enabled": true,
        "screen_width": 1728,
        "accept_header": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
        "screen_height": 1117,
        "java_script_enabled": true
    },
    "payment_method_id": "pm_J8lpqDREZjPBHbyjVcaR",
    "payment_method_status": "active",
    "updated": "2024-11-20T13:58:34.357Z",
    "charges": null,
    "frm_metadata": null,
    "merchant_order_reference_id": null,
    "order_tax_amount": null,
    "connector_mandate_id": "73768133cx377010c"
}
  1. Do MIT using mandate_id(recurring payment)
curl --location 'http://localhost:8080/payments' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'api-key: ______' \
--data '{
    "amount": 7000,
    "currency": "USD",
    "capture_method": "automatic",
    "off_session": true,
    "confirm": true,
    "description": "Initiated by merchant",
    "mandate_id": "man_glXjMn3ygup05iRL4nHG",
    "customer_id": "cus_E9B0K9nWdTZCCunHqnFr",
    "billing": {
        "address": {
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "city": "San Fransico",
            "state": "California",
            "zip": "94122",
            "country": "US",
            "first_name": "john",
            "last_name": "Doe"
        }
    },
    "browser_info": {
        "ip_address": "129.0.0.1",
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
        "accept_header": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
        "language": "en-US",
        "color_depth": 30,
        "screen_height": 1117,
        "screen_width": 1728,
        "time_zone": -330,
        "java_enabled": true,
        "java_script_enabled": true
    }
}'

Response

{
    "payment_id": "pay_3rivA5R7qPQVfkkzaeWn",
    "merchant_id": "merchant_1731676053",
    "status": "succeeded",
    "amount": 7000,
    "net_amount": 7000,
    "shipping_cost": null,
    "amount_capturable": 0,
    "amount_received": 7000,
    "connector": "paypal",
    "client_secret": "pay_3rivA5R7qPQVfkkzaeWn_secret_ppAZWV4udYUgDeVsyENC",
    "created": "2024-11-20T13:58:43.398Z",
    "currency": "USD",
    "customer_id": "cus_E9B0K9nWdTZCCunHqnFr",
    "customer": {
        "id": "cus_E9B0K9nWdTZCCunHqnFr",
        "name": "John Doe",
        "email": "[email protected]",
        "phone": "999999999",
        "phone_country_code": "+65"
    },
    "description": "Initiated by merchant",
    "refunds": null,
    "disputes": null,
    "mandate_id": "man_glXjMn3ygup05iRL4nHG",
    "mandate_data": null,
    "setup_future_usage": null,
    "off_session": true,
    "capture_on": null,
    "capture_method": "automatic",
    "payment_method": "card",
    "payment_method_data": {
        "card": {
            "last4": "0026",
            "card_type": null,
            "card_network": null,
            "card_issuer": null,
            "card_issuing_country": null,
            "card_isin": "401200",
            "card_extended_bin": null,
            "card_exp_month": "01",
            "card_exp_year": "25",
            "card_holder_name": "joseph Doe",
            "payment_checks": null,
            "authentication_data": null
        },
        "billing": null
    },
    "payment_token": "327ed839-b0e7-414e-be00-795c61b9dcea",
    "shipping": null,
    "billing": {
        "address": {
            "city": "San Fransico",
            "country": "US",
            "line1": "1467",
            "line2": "Harrison Street",
            "line3": "Harrison Street",
            "zip": "94122",
            "state": "California",
            "first_name": "john",
            "last_name": "Doe"
        },
        "phone": null,
        "email": null
    },
    "order_details": null,
    "email": "[email protected]",
    "name": "John Doe",
    "phone": "999999999",
    "return_url": null,
    "authentication_type": "no_three_ds",
    "statement_descriptor_name": null,
    "statement_descriptor_suffix": null,
    "next_action": null,
    "cancellation_reason": null,
    "error_code": null,
    "error_message": null,
    "unified_code": null,
    "unified_message": null,
    "payment_experience": null,
    "payment_method_type": "debit",
    "connector_label": null,
    "business_country": null,
    "business_label": "default",
    "business_sub_label": null,
    "allowed_payment_method_types": null,
    "ephemeral_key": {
        "customer_id": "cus_E9B0K9nWdTZCCunHqnFr",
        "created_at": 1732111123,
        "expires": 1732114723,
        "secret": "epk_87b33d5cd2d042b6934264619f6ff942"
    },
    "manual_retry_allowed": false,
    "connector_transaction_id": "29G37703W52795403",
    "frm_message": null,
    "metadata": null,
    "connector_metadata": null,
    "feature_metadata": null,
    "reference_id": "pay_3rivA5R7qPQVfkkzaeWn_1",
    "payment_link": null,
    "profile_id": "pro_xKby2vXlCSeMpUTBEsk3",
    "surcharge_details": null,
    "attempt_count": 1,
    "merchant_decision": null,
    "merchant_connector_id": "mca_Vl8v0mol6xSzWD1qt36H",
    "incremental_authorization_allowed": null,
    "authorization_count": null,
    "incremental_authorizations": null,
    "external_authentication_details": null,
    "external_3ds_authentication_attempted": false,
    "expires_on": "2024-11-20T14:13:43.398Z",
    "fingerprint": null,
    "browser_info": {
        "language": "en-US",
        "time_zone": -330,
        "ip_address": "129.0.0.1",
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
        "color_depth": 30,
        "java_enabled": true,
        "screen_width": 1728,
        "accept_header": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
        "screen_height": 1117,
        "java_script_enabled": true
    },
    "payment_method_id": "pm_J8lpqDREZjPBHbyjVcaR",
    "payment_method_status": "active",
    "updated": "2024-11-20T13:58:47.928Z",
    "charges": null,
    "frm_metadata": null,
    "merchant_order_reference_id": null,
    "order_tax_amount": null,
    "connector_mandate_id": "73768133cx377010c"
}

Cypress Test
Screenshot 2024-11-20 at 7 32 07 PM

Checklist

  • I formatted the code cargo +nightly fmt --all
  • I addressed lints thrown by cargo clippy
  • I reviewed the submitted code
  • I added unit tests for my changes where possible

@KiranKBR KiranKBR requested a review from a team as a July 15, 2024 11:11
@KiranKBR KiranKBR marked this pull request as draft July 15, 2024 11:20
@KiranKBR KiranKBR force-pushed the paypal-wallet-vaulting-while-purchasing branch from fde6085 to 19cb59c Compare July 16, 2024 09:00
@KiranKBR KiranKBR changed the title feat(connector): [Paypal] implement vaulting for paypal wallet via non zero mandates feat(connector): [Paypal] implement vaulting for paypal wallet via zero mandates Jul 16, 2024
@KiranKBR KiranKBR force-pushed the paypal-wallet-vaulting-while-purchasing branch from 8ce2657 to 6020ff0 Compare August 6, 2024 17:38
@swangi-kumari swangi-kumari self-assigned this Nov 4, 2024
@swangi-kumari swangi-kumari added A-connector-integration Area: Connector integration C-feature Category: Feature request or enhancement labels Nov 4, 2024
Base automatically changed from paypal-wallet-vaulting-while-purchasing to main November 5, 2024 10:14
@swangi-kumari swangi-kumari changed the title feat(connector): [Paypal] implement vaulting for paypal wallet via zero mandates feat(connector): [Paypal] implement vaulting for paypal cards via zero mandates Nov 18, 2024
@swangi-kumari swangi-kumari marked this pull request as ready for review November 18, 2024 14:06
billing_address: Option<Address>,
expiry: Option<Secret<String>>,
name: Option<Secret<String>>,
number: Option<cards::CardNumber>,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is card number option?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are using the same struct CardMandateRequest for request and response of Zero Mandate Payment and in response they are not sending field number

AkshayaFoiger
AkshayaFoiger previously approved these changes Nov 19, 2024
@swangi-kumari swangi-kumari requested a review from a team as a code owner November 20, 2024 14:08
@Gnanasundari24 Gnanasundari24 added this pull request to the merge queue Nov 25, 2024
Merged via the queue into main with commit 83e8bc0 Nov 25, 2024
16 of 17 checks passed
@Gnanasundari24 Gnanasundari24 deleted the paypal-wallet-vaulting-zero-mandates branch November 25, 2024 07:31
bsayak03 pushed a commit that referenced this pull request Nov 26, 2024
…o mandates (#5324)

Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
Co-authored-by: swangi-kumari <[email protected]>
bsayak03 pushed a commit that referenced this pull request Nov 26, 2024
…o mandates (#5324)

Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
Co-authored-by: swangi-kumari <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-connector-integration Area: Connector integration C-feature Category: Feature request or enhancement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants