PayPack logo
PayPack logo

All articles

Data OrchestrationUpdated 3 days ago

Data Orchestration automates the secure, reliable exchange of key data between Stripe and NetSuite, ensuring both systems stay synchronized.

Stripe to NetSuite Invoice Import

Configuration Settings

All invoice settings can be found under the Invoices subtab in the Data Orchestration tab. The fields are grouped together under Stripe to NetSuite for easy access.

Note: Click any field label in the Invoices tab to see a description of its purpose and usage.

Field Descriptions

  • Enable Invoices Flow: Check/mark to enable importing Stripe invoices into NetSuite. Uncheck to stop all invoice imports.

  • Enable Webhook for Invoices: Check/mark to let Stripe webhooks automatically sync invoices to NetSuite when they are finalized or paid.

  • Update Stripe Metadata: Check/mark to automatically write the NetSuite Invoice Internal ID back to the corresponding Stripe invoice after it is create


  • Last Exported Date: Shows the last time invoices were imported from Stripe (in Unix timestamp). This value is used in the next import to fetch only invoices created after this time using the created[gte] parameter.

Note: This field is updated by the system after every flow execution and is read-only.

  • Exclude $0 Invoices: Check/mark to automatically skip importing invoices with a total amount of zero.

  • Invoice Line Item: Maps the total Stripe invoice amount to the selected NetSuite item. Regardless of how many lines are on the Stripe invoice, only one line will be added to the NetSuite invoice.

Note: Taxes and discounts from Stripe will not be imported.

  • Discount Item: Maps the NetSuite item that represents any discounts from Stripe invoices.

Note: Use only non-inventory items. All Stripe discounts appear as a single line on the NetSuite invoice.

  • Tax Item: Maps the NetSuite item that captures taxes from Stripe invoices.

Note: Use only non-inventory items. All Stripe taxes are combined into a single line on the NetSuite invoice.

  • Invoice Field Mappings: Controls how Stripe Invoice fields are mapped to NetSuite Invoice fields and allows you to include related customer data from the associated Stripe customer.
    Note: Fields from the 
    Stripe invoice object can be used. Associated customer data is available via stripeCustomerData (e.g., stripeCustomerData.idstripeCustomerData.email).

 Item Mapping Hierarchy

  1. Configured Items (Invoice Line, Discount, Tax): 

  • If items are configured, they are imported as single-line items on the invoice as described above.

  1. Multiple Line Items:

  • Invoice Field Mappings let you link each Stripe invoice line to a NetSuite item. In this case, the default Invoice Line Item field must be left blank in the configuration settings.

  • You can use either static or dynamic lookups to select NetSuite items for each Stripe Invoice line.

  • Sublist mappings are required even when default items are set  (using Invoice Line Item, Discount Item, or Tax Item field). Sublist mappings allow mapping beyond Item, Quantity, and Amount, ensuring all invoice lines, discounts, and taxes from Stripe are imported correctly into NetSuite

Note: 
1. Always map Item, Quantity, and Amount for tax and discount lines, plus other required fields. Quantity defaults to 1, and Amount comes from Stripe (total discounts or taxes).

2. Use the record mapping fields to map all required line-level fields.
3. Using the Invoice Line Item always adds a single line for the total amount from the Stripe Invoice.
4. For conditional mapping, always leave the default item fields blank and use static or dynamic mapping. Any values entered in these fields will override the conditional logic in the Invoice Field Mappings.

Refer to the Field Mapping Documentation for examples and detailed instructions on implementing conditional mappings.

  • Payment Account: Select the NetSuite account where Stripe payments will be recorded. All imported payments are posted to this account.

  • Payment Method: Select the payment method in NetSuite for recording Stripe payments.

Note: To use condition-based mapping, leave the Payment Account and  Payment Method fields empty and use static or dynamic mapping. Filling in these fields sets a global default that overrides any conditional logic in the Customer Payment Field Mappings.

Refer to the Field Mapping Documentation for examples and detailed instructions on implementing conditional mappings.

  • Customer Payment Field Mappings: Controls how Stripe Payment (Payment Intent) fields are mapped to NetSuite Customer Payment fields and allows inclusion of related invoice and customer data from the associated Stripe objects.

Note: Fields from the Stripe payment intent object can be used. Payment data is organized as an array within each payment object, with associated invoice and customer details available via parent objects (for example, parent.stripeInvoiceData.idparent.stripeCustomerData.id).

  • Customer Field Mappings: Controls how Stripe Customer fields are mapped to NetSuite Customer fields

Note: Only fields from the Stripe customer object can be used.

For detailed JSON mapping examples and instructions, refer to the Field Mapping Documentation.

Sample Invoice mapping commonly used

1{
2  "fields": [
3    {
4      "generate": "custbody_pp_stripe_invoice_id",
5      "extract": "id"
6    },
7    {
8      "generate": "duedate",
9      "fieldType": "date",
10      "extract": "due_date"
11    },
12    {
13      "generate": "custbody25",
14      "extract": "payments.data.0.payment.payment_intent"
15    }
16  ],
17  "sublist": {
18    "item": [
19      {
20        "generate": "item",
21        "dynamicLookup": {
22          "recordType": "inventoryitem",
23          "filters": [
24            ["stockdescription","is",
25              "{{lines.data[].pricing.price_details.product}}"
26            ],"and",
27            ["isinactive","is","F"]
28          ],
29          "resultField": "internalid",
30          "default": "502"
31        }
32      },
33      {
34        "generate": "quantity",
35        "handlebars": "{{lines.data[].quantity}}"
36      },
37      {
38        "generate": "rate",
39        "handlebars": "{{toFixed (divide lines.data[].pricing.unit_amount_decimal 100) 2}}"
40      },
41      {
42        "generate": "location",
43        "hardCodedValue": "2"
44      },
45      {
46        "generate": "taxcode",
47        "hardCodedValue": "-7"
48      }
49    ],
50    "discount": [
51      {
52        "generate": "item",
53        "extract": "total_discount_amounts[].discount",
54        "staticLookup": {
55          "map": {
56            "di_1SKeCTCzzXCPoFbPIgJxwkgy": "1010",
57            "di_1SFu9jCzzXCPoFbPApwQpRG6": "1010"
58          },
59          "default": 999
60        }
61      },
62      {
63        "generate": "quantity",
64        "hardCodedValue": 1
65      },
66      {
67        "generate": "amount",
68        "handlebars": "-{{toFixed (divide total_discount_amounts[].amount 100) 2}}"
69      },
70      {
71        "generate": "taxcode",
72        "hardCodedValue": "-7"
73      }
74    ],
75    "tax": [
76      {
77        "generate": "item",
78        "hardCodedValue": "2"
79      },
80      {
81        "generate": "location",
82        "hardCodedValue": "2"
83      },
84      {
85        "generate": "taxcode",
86        "hardCodedValue": "-7"
87      }
88    ]
89  }
90}


Stripe to NetSuite Charges Import

Configuration Settings

All charge settings are located under the Charges subtab within the Data Orchestration tab. In this subtab, the Charges and Customer Settings field groups contain all configuration fields required for managing the Charges flow.

Note: Click any field label in the Charges and Customer Settings field groups to see a description of its purpose and usage.

Field Descriptions

  • Enable Charges Flow: Check/mark to enable importing Stripe charges into NetSuite. Uncheck to stop all charge imports.
  • Update Stripe Charge Metadata: Check/mark to automatically write the NetSuite Selected Transaction Record’s Internal ID back to the corresponding Stripe charge after it is created.

  • Last Exported Date: Shows the last time charges were imported from Stripe (in Unix timestamp). This value is used in the next import to fetch only charges created after this time using the created[gte] parameter.
    Note: The system updates this field after every flow execution, and it is read-only.

  • Stripe Charge Status Filter (Applied after retrieval): Stripe charges with status Succeeded are imported. This field specifies which charge status is allowed for processing after retrieval, ensuring that only Succeeded charges are synced to NetSuite.
    Note: The value is set to Succeeded and is read-only.

  • Transaction Type: Determines which NetSuite transaction type is created for each imported Stripe charge. Choose from Cash Sale, Customer Payment, or Customer Deposit based on your accounting workflow.

  • Transaction Field Mappings: Controls how Stripe Charge fields are mapped to NetSuite transaction fields (Cash Sale, Customer Payment, or Customer Deposit) and allows you to include related customer data from the associated Stripe customer.
    Note: Fields from the Stripe charge object can be used. Associated customer data is available via stripeCustomerData (e.g., stripeCustomerData.idstripeCustomerData.email).
    The NetSuite Customer record ID is available as nsCustomerId and can be used to link the transaction to the corresponding NetSuite customer. 
    Refer to the Sample Field Mappings section for guidance on linking the NetSuite Customer Record ID.

  • Payment Account: Select the NetSuite account where Stripe payments will be recorded. All imported payments are posted to this account.

  • Payment Method: Select the payment method in NetSuite for recording Stripe payments.
    Note: To use condition-based mapping, leave the Payment Account and Payment Method fields empty and use static or dynamic mapping. Filling in these fields sets a global default that overrides any conditional logic in the Transaction Field Mappings.
    Refer to the Field Mapping Documentation for examples and detailed instructions on implementing conditional mappings.

  • Customer Field Mappings:
     Controls how Stripe Customer fields are mapped to NetSuite Customer fields
    Note: Only fields from the Stripe customer object can be used.

  • Criteria to find existing customer record:
    Use this field to define a lookup that determines whether a record already exists in NetSuite. If no result is found from the lookup, a default value can be provided by specifying a default NetSuite customer internal ID. If no lookup criteria is provided, the flow will use the Stripe Customer ID (PayPack) field OR email to find an existing customer.

In the sample lookup below, metadata.cus_email is a property on the Stripe Charge object

1{
2  "filters": [
3    [
4      "comments",
5      "is",
6      "{{metadata.cus_email}}"
7    ]
8  ],
9  "default": ""
10}
11
12

Sample Field Mappings

  1. Sample Cash Sale Field Mappings:
1{
2  "fields": [
3     {
4      "generate": "entity",
5      "extract": "nsCustomerId"
6    },
7    {
8      "generate": "location",
9      "hardCodedValue": "2"
10    },
11    {
12      "generate": "custbody_nm_stripe_dcharge_id",
13      "extract": "id"
14    }
15  ],
16  "sublist": {
17    "item": [
18      {
19        "generate": "item",
20        "hardCodedValue": "502"
21      },
22      {
23        "generate": "quantity",
24        "hardCodedValue": "1"
25      },
26      {
27        "generate": "price",
28        "hardCodedValue": "-1"
29      },
30      {
31         "generate": "amount",
32        "handlebars": "{{toFixed (divide amount 100) 2}}"
33      },
34      {
35        "generate": "taxcode",
36        "hardCodedValue": "-7"
37      }
38    ]
39  }
40}
  1. Sample Customer Payment Field Mappings:
1{
2  "fields": [
3      {
4      "generate": "customer",
5      "extract": "nsCustomerId"
6    },
7    {
8      "generate": "payment",
9      "handlebars": "{{toFixed (divide amount 100) 2}}"
10    },
11    {
12      "generate": "paymentmethod",
13      "hardCodedValue": "10"
14    },
15    {
16      "generate": "account",
17      "hardCodedValue": "2"
18    },
19    {
20      "generate": "custbody_nm_stripe_dcharge_id",
21      "extract": "id"
22    }
23  ]
24}

 

  1. Sample Customer Deposit Field Mappings:
1{
2  "fields": [
3     {
4      "generate": "customer",
5      "extract": "nsCustomerId"
6    },
7    {
8      "generate": "payment",
9      "handlebars": "{{toFixed (divide amount 100) 2}}"
10    },
11    {
12      "generate": "location",
13      "hardCodedValue": "2"
14    },
15    {
16      "generate": "paymentmethod",
17      "hardCodedValue": "10"
18    },
19    {
20      "generate": "account",
21      "hardCodedValue": "2"
22    },
23    {
24      "generate": "custbody_nm_stripe_dcharge_id",
25      "extract": "id"
26    }
27  ]
28}

 

Stripe to NetSuite Refunds Import 

Configuration Settings:

All refund settings are located under the Refunds subtab within the Data Orchestration tab. Inside this subtab, the Refunds field group contains all configuration fields required for managing the Refunds flow.

Note: Click any field label in the Refunds field group to see a description of its purpose and usage.

Field Descriptions

  • Enable Refunds Flow: Check/mark to enable importing Stripe refunds into NetSuite. Uncheck to stop all refunds imports.

  • Update Stripe Refund Metadata: Check/mark to automatically write the NetSuite Customer Refund Internal ID back to the corresponding Stripe refund after it is created.

  • Last Exported Date: Shows the last time refunds were imported from Stripe (in Unix timestamp). This value is used in the next import to fetch only refunds created after this time using the created[gte] parameter.
    Note: This field is updated by the system after every flow execution and is read-only.

  • Credit memo Line Item for Partial Refunds: Maps the total Stripe partial refund amount to the selected NetSuite item. Regardless of the number of lines on the Stripe invoice, only one line will be added to the NetSuite Credit Memo for partial refunds.


Configuring Items for Partial Refunds

For partial refunds, the item used on the Credit Memo is based on this priority order:

        • If the “Credit Memo Line Item for Partial Refunds” is configured, a single line is added to the Credit Memo with that item, and the partial refund amount from Stripe is applied to this item.

        • If the “Credit Memo Line Item for Partial Refunds” is not configured, the first invoice line item  is used, regardless of whether the invoice has one line or multiple lines.

Note: Item mappings are not mandatory. Even if item mappings are provided, either the configured “Credit Memo Line Item for Partial Refunds” item or the first invoice line item will be used.

  • Credit Memo Field Mappings: Controls how Stripe Refund fields are mapped to NetSuite Credit Memo fields.
    Note: Fields from the Stripe refund object can be used.
    Refer to the Sample Credit Memo Field Mappings at the end of this document for reference. Also, for detailed JSON mapping examples and instructions, refer to the Field Mapping Documentation.

  • Customer Refund Account: Select the NetSuite account where customer refunds will be recorded. All imported Stripe refunds are posted to this account.
    Note: To use condition-based mapping, leave the Customer Refund Account field empty and use static or dynamic mapping. Filling in this field sets a global default that overrides any conditional logic in the Customer Refund Field Mappings.

  • Customer Refund Method: Select the refund method in NetSuite for recording Stripe refunds.

Note: To use condition-based mapping, leave the Customer Refund Method field empty and use static or dynamic mapping. Filling in this field sets a global default that overrides any conditional logic in the Customer Refund Field Mappings.

  • Customer Refund Field Mappings: Controls how Stripe Refund fields are mapped to NetSuite Customer Refund fields. This includes applying the Credit Memo created, using the configured sublist mappings, which reference the generated NetSuite Credit Memo ID.
    Note: Fields from the Stripe refund object can be used. The NetSuite Credit Memo record ID can be accessed in mappings as a nsCreditMemoId.Refer to the Sample Customer Refund Field Mappings at the end of this document for reference on how to correctly apply a Credit Memo to a Customer Refund. Also, for detailed JSON mapping examples and instructions, refer to the Field Mapping Documentation.

Sample Field Mappings

  1. Sample Credit Memo Field Mappings:
1{
2  "fields": [
3    {
4      "generate": "location",
5      "hardCodedValue": "2"
6    },
7    {
8      "generate": "custbody_nm_pp_stripe_refund_id",
9      "extract": "id"
10    }
11  ],
12  "sublist": {
13    "item": [
14      {
15        "generate": "item",
16        "hardCodedValue": "502"
17      },
18      {
19        "generate": "quantity",
20        "hardCodedValue": "1"
21      },
22      {
23        "generate": "price",
24        "hardCodedValue": "-1"
25      },
26      {
27        "generate": "amount",
28        "handlebars": "{{toFixed (divide amountRefunded 100) 2}}"
29      },
30      {
31        "generate": "taxcode",
32        "hardCodedValue": "-7"
33      }
34    ]
35  }
36}
  1. Sample Customer Refund Field Mappings:
1{
2  "fields": [
3    {
4      "generate": "customer",
5      "dynamicLookup": {
6        "recordType": "customer",
7        "filters": [
8          [
9            "custentity_nm_stripecharge_customer_id",
10            "is",
11            "{{charge.customer}}"
12          ]
13        ],
14        "resultField": "internalid",
15        "default": ""
16      }
17    },
18    {
19      "generate": "total",
20      "handlebars": "{{toFixed (divide amountRefunded 100) 2}}"
21    },
22    {
23      "generate": "custbody_nm_pp_stripe_refund_id",
24      "extract": "id"
25    }
26  ],
27  "sublist": {
28    "apply": [
29      {
30        "generate": "apply",
31        "hardCodedValue": "T"
32      },
33      {
34        "generate": "doc",
35        "extract": "nsCreditMemoId"
36      }
37    ]
38  }
39}
40
41

Stripe to NetSuite Credit Note Import

Configuration Settings

All credit notes settings can be found under the Refunds subtab in the Data Orchestration tab. The fields are grouped together under Credit Notes for easy access.

Note: Click any field label to see a description of its purpose and usage.

Field Descriptions

  • Enable Credit Notes Flow: Check/mark to enable importing Stripe credit notes into NetSuite. Uncheck to stop all credit note imports.

  • Update Stripe Credit Note Metadata: Check/mark to automatically write the NetSuite Credit Memo Internal ID back to the corresponding Stripe Credit Note after it is created

  • Last Exported Date: Shows the last time credit notes were imported from Stripe (in Unix timestamp). This value is used in the next import to fetch only credit notes created after this time using the created[gte] parameter.

Note: This field is updated by the system after every flow execution and is read-only.

  • Credit Memo Discount Item: Maps the NetSuite Item that represents any discounts from Stripe Credit Notes.

Note: Use only non-inventory items. All Stripe discounts appear as a single line on the NetSuite Credit Memo.

  • Credit Memo Tax Item: Maps the NetSuite item that captures taxes from Stripe credit notes.

Note: Use only non-inventory items. All Stripe taxes are combined into a single line on the NetSuite credit memo.


Item Mapping Hierarchy

  1. Configured Items (Discount, Tax): 

    • If the “Credit Memo Discount Item” and/or “Credit Memo Tax Item” are configured, they are imported as single-line items on the credit note as described above.

  1. Multiple Line Items:

    • “Credit Memo Field Mappings” lets you link each Stripe Credit Note line to a NetSuite item.

    • You can use either static or dynamic lookups to select NetSuite Items for each Stripe Credit Note line.

    • Sublist mappings are required even when default items are set  (using Discount Item, or Tax Item field). Sublist mappings allow mapping beyond Item, Quantity, and Amount, ensuring all credit note lines, discounts, and taxes from Stripe are imported correctly into NetSuite

Note: 
1. Always map Item, Quantity, and Amount for tax and discount lines, plus other required fields. Quantity defaults to 1, and Amount comes from Stripe (total discounts or taxes).

2. Use the record mapping fields to map all required line-level fields.

3. For conditional mapping, always leave the default item fields blank and use static or dynamic mapping. Any values entered in these fields will override the conditional logic in the Credit Memo Field Mappings.

Refer to the Field Mapping Documentation for examples and detailed instructions on implementing conditional mappings.

  • Credit memo Line Item for Applied Balance: Maps the NetSuite item that represents any Applied Balance from Stripe credit notes.

Note: Use only non-inventory items. The Applied Balance will appear as a line item on the NetSuite credit memo.

  • Credit Memo Field Mappings: Controls how Stripe Credit Note fields are mapped to NetSuite Credit Memo fields

 Note: Only fields from the Stripe Credit Note object can be used.
Refer to the Sample Credit Memo Mappings for detailed mapping configurations. Also, for detailed JSON mapping examples and instructions, refer to the Field Mapping Documentation.

  • Customer Refund Account: Select the NetSuite account where Stripe refunds will be recorded. All imported customer refunds are posted to this account.

Note: To use condition-based mapping, leave the Customer Refund Account field empty and use static or dynamic mapping. Filling in this field sets a global default that overrides any conditional logic in the Customer Refund Field Mappings.

  • Customer Refund Method: Select the payment method in NetSuite for recording Stripe refunds.

Note: To use condition-based mapping, leave the Customer Refund Method field empty and use static or dynamic mapping. Filling in this field sets a global default that overrides any conditional logic in the Customer Refund Field Mappings.

  • Customer Refund Field Mappings: Controls how Stripe refund fields are mapped to NetSuite customer refund fields

Note: Fields from the Stripe credit note object can be used. Refund data is organized as an array within each refund object, with associated credit notes available via parent objects (for example, parent.stripeCreditnoteData.id, parent.stripeCustomerData.id).The NetSuite credit memo record Id can be accessed in mappings as  parent.stripeCreditnotesData.nsCreditmemoId
Refer to the Sample Credit Refund Mappings for detailed mapping configurations

.

For detailed JSON mapping examples and instructions, refer to the Field Mapping Documentation.

Sample Field Mappings

  1. Sample Credit Memo Field Mappings:
1{
2    "fields": [
3        {
4            "generate": "location",
5            "hardCodedValue": "2"
6        },
7        {
8            "generate": "custbody_pp_s2ns_credit_note_id",
9            "extract": "id"
10        }
11    ],
12    "sublist": {
13        "item": [
14            {
15                "generate": "item",
16                "dynamicLookup": {
17                    "recordType": "inventoryitem",
18                    "filters": [
19                        [
20                            "stockdescription",
21                            "is",
22                            "{{lines.data[].product}}"
23                        ],
24                        "and",
25                        [
26                            "isinactive",
27                            "is",
28                            "F"
29                        ]
30                    ],
31                    "resultField": "internalid",
32                    "default": "502"
33                }
34            },
35            {
36                "generate": "quantity",
37                "extract": "lines.data[].quantity"
38            },
39            {
40                "generate": "price",
41                "hardCodedValue": "-1"
42            },
43            {
44                "generate": "amount",
45                "handlebars": "{{toFixed (divide lines.data[].amount 100) 2}}"
46            },
47            {
48                "generate": "taxcode",
49                "hardCodedValue": "-7"
50            }
51        ],
52        "discount": [
53            {
54                "generate": "item",
55                "hardCodedValue": 603
56            },
57            {
58                "generate": "quantity",
59                "hardCodedValue": 1
60            },
61            {
62                "generate": "price",
63                "hardCodedValue": "-1"
64            },
65            {
66                "generate": "amount",
67                "hardCodedValue": 1
68            },
69            {
70                "generate": "taxcode",
71                "hardCodedValue": "-7"
72            }
73        ],
74        "tax": [
75            {
76                "generate": "item",
77                "hardCodedValue": 716
78            },
79            {
80                "generate": "quantity",
81                "hardCodedValue": 1
82            },
83            {
84                "generate": "price",
85                "hardCodedValue": "-1"
86            },
87            {
88                "generate": "amount",
89                "hardCodedValue": 1
90            },
91            {
92                "generate": "ignoreInclusiveTax",
93                "hardCodedValue": "true"
94            }
95        ]
96    }
97}
  1. Sample Customer Refund Field Mappings:
1{
2    "fields": [
3        {
4            "generate": "customer",
5            "dynamicLookup": {
6                "recordType": "customer",
7                "filters": [
8                    [
9                        "custentity_nm_stripecharge_customer_id",
10                        "is",
11                        "{{parent.stripeCreditnotesData.customer}}"
12                    ]
13                ],
14                "resultField": "internalid",
15                "default": ""
16            }
17        },
18        {
19            "generate": "custbody_nm_pp_stripe_refund_id",
20            "extract": "id"
21        },
22        {
23            "generate": "paymentmethod",
24            "hardCodedValue": "10"
25        },
26        {
27            "generate": "account",
28            "hardCodedValue": "2"
29        }
30    ],
31    "sublist": {
32        "apply": [
33            {
34                "generate": "apply",
35                "hardCodedValue": "T"
36            },
37            {
38                "generate": "doc",
39                "extract": "parent.stripeCreditnotesData.nsCreditmemoId"
40            },
41            {
42                "generate": "amount",
43                "handlebars": "{{toFixed (divide amount 100) 2}}"
44            }
45        ]
46    }
47}
48
49

Stripe to NetSuite Disputes & Dispute Reversals Import

Configuration Settings

All dispute settings are located under the Disputes subtab within the Data Orchestration tab. Under this subtab, the Dispute and Dispute Reversal field groups contain all configuration fields required for managing the Disputes flow.

Note: Click any field label in the Dispute and Dispute Reversal field groups to see a description of its purpose and usage.

Field Descriptions

  • Enable Disputes Flow: Check/mark to enable importing Stripe disputes into NetSuite. Uncheck to stop all dispute imports.

  • Last Exported Date: Shows the last time disputes were imported from Stripe (in Unix timestamp). This value is used in the next import to fetch only disputes created after this time using the created[gte] parameter.
    Note: The system updates this field after every flow execution, and it is read-only.

  • Transaction Type: Determines which NetSuite transaction type is created for each imported Stripe dispute. Choose between Cash Sale / Cash Refund, or Customer Payment / Customer Refund, based on your accounting workflow.

    Note: When Cash Sale / Cash Refund is selected, Cash Refund is created for Disputes and Cash Sale is created for Dispute Reversals. When Customer Payment / Customer Refund is selected, Credit Memo + Customer Refund is created for Disputes, and Customer Payment is created for Dispute Reversals.

  • Dispute Line Item: A NetSuite item used in Credit Memo to map the total Stripe dispute amount.

    Note: Use only non-inventory items. To use condition-based mapping, leave the Dispute Line Item field empty and use static or dynamic mapping. Filling in these fields sets a global default that overrides any conditional logic in item mappings of the Credit Memo Field Mappings.

  • Credit Memo Field Mappings: Controls how Stripe Dispute fields are mapped to NetSuite Credit Memo fields.
    Note: Fields from the Stripe dispute object can be used.
    Refer to the Sample Credit Memo Field Mappings at the end of this document for reference. Also, for detailed JSON mapping examples and instructions, refer to the Field Mapping Documentation.

  • Refund Account: Select the NetSuite account where Customer Refund / Cash Refund will be recorded. All imported Stripe disputes are posted to this account.

    Note: To use condition-based mapping, leave the Refund Account field empty and use static or dynamic mapping. Filling in this field sets a global default that overrides any conditional logic in the Customer Refund / Cash Refund Field Mappings.
    Refer to the Field Mapping Documentation for examples and detailed instructions on implementing conditional mappings.

  • Refund Method: Select the payment method to be used for recording the Stripe dispute on the Customer Refund / Cash Refund record.

    Note: To use condition-based mapping, leave the Refund Method field empty and use static or dynamic mapping. Filling in this field sets a global default that overrides any conditional logic in the Customer Refund / Cash Refund Field Mappings.
    Refer to the Field Mapping Documentation for examples and detailed instructions on implementing conditional mappings. 

  • Customer Refund / Cash Refund Field Mappings: Controls how Stripe Dispute fields are mapped to NetSuite Customer Refund / Cash Refund fields.
    Note: Fields from the Stripe dispute object can be used.
    Refer to the Sample Customer Refund Field Mappings or Sample Cash Refund Field Mappings at the end of this document for reference. Also, for detailed JSON mapping examples and instructions, refer to the Field Mapping Documentation.

  • NetSuite Dispute Records Saved Search: A saved search in NetSuite used to fetch dispute records with a status other than “won or lost”. The search retrieves disputes corresponding to Stripe disputes to facilitate status updates. 

  • Payment Account: Select the NetSuite Account where Stripe dispute payments will be recorded on the Customer Payment / Cash Sale record.

    Note: To use condition-based mapping, leave the Payment Account field empty and use static or dynamic mapping. Filling in this field sets a global default that overrides any conditional logic in the Customer Payment Field Mappings.
    Refer to the Field Mapping Documentation for examples and detailed instructions on implementing conditional mappings.

  • Payment Method: Select the payment method in NetSuite for recording Stripe dispute payments on the Customer Payment / Cash Sale record.

    Note: To use condition-based mapping, leave the Payment Method field empty and use static or dynamic mapping. Filling in this field sets a global default that overrides any conditional logic in the Customer Payment Field Mappings.
    Refer to the Field Mapping Documentation for examples and detailed instructions on implementing conditional mappings.

  • Cash Sale Line Item: A NetSuite item used in Cash Sale to map the total Stripe dispute amount.
    Note: Use only non-inventory items. To use condition-based mapping, leave the Cash Sale Line Item field empty and use static or dynamic mapping. Filling in these fields sets a global default that overrides any conditional logic in item mappings of the Cash Sale Field Mappings.

  • Customer Payment / Cash Sale Field Mappings: Controls how Stripe Dispute fields are mapped to NetSuite Customer Payment / Cash Sale fields.
    Note: Fields from the Stripe dispute object
    can be used as the start point of the data is NetSuite the dispute data is mapped as (stripeDisputeData.id) if data from saved search is needed to map then you saved search label (dispute_customer_id).
    Refer to the Sample Customer Payment Field Mappings or Sample Cash Sale Field Mappings at the end of this document for reference. Also, for detailed JSON mapping examples and instructions, refer to the Field Mapping Documentation.

Sample Field Mappings

  1. Sample Cash Refund Field Mappings:
1{
2  "fields": [
3    {
4      "generate": "entity",
5      "dynamicLookup": {
6        "recordType": "customer",
7        "filters": [
8          [
9            "custentity_nm_stripecharge_customer_id",
10            "is",
11            "{{charge.customer}}"
12          ]
13        ],
14        "resultField": "internalid",
15        "default": ""
16      }
17    },
18    {
19      "generate": "location",
20      "hardCodedValue": "2"
21    },
22    {
23      "generate": "custbody_pp_stripe_dispute_id",
24      "extract": "id"
25    }
26  ],
27  "sublist": {
28    "item": [
29      {
30        "generate": "item",
31        "hardCodedValue": "387"
32      },
33      {
34        "generate": "quantity",
35        "hardCodedValue": "1"
36      },
37      {
38        "generate": "price",
39        "hardCodedValue": "-1"
40      },
41      {
42        "generate": "amount",
43        "handlebars": "{{toFixed (divide amount 100) 2}}"
44      },
45      {
46        "generate": "taxcode",
47        "hardCodedValue": "-7"
48      }
49    ]
50  }
51}
  1. Sample Credit Memo Field Mappings:
1{
2  "fields": [
3    {
4      "generate": "entity",
5      "dynamicLookup": {
6        "recordType": "customer",
7        "filters": [
8          [
9            "custentity_nm_stripecharge_customer_id",
10            "is",
11            "{{charge.customer}}"
12          ]
13        ],
14        "resultField": "internalid",
15        "default": ""
16      }
17    },
18    {
19      "generate": "location",
20      "hardCodedValue": "2"
21    },
22    {
23      "generate": "custbody_pp_stripe_dispute_id",
24      "extract": "id"
25    }
26  ],
27  "sublist": {
28    "item": [
29      {
30        "generate": "item",
31        "hardCodedValue": "502"
32      },
33      {
34        "generate": "quantity",
35        "hardCodedValue": "1"
36      },
37      {
38        "generate": "price",
39        "hardCodedValue": "-1"
40      },
41      {
42        "generate": "amount",
43        "handlebars": "{{toFixed (divide amount 100) 2}}"
44      },
45      {
46        "generate": "taxcode",
47        "hardCodedValue": "-7"
48      }
49    ]
50  }
51}
  1. Sample Customer Refund Field Mappings:
1{
2  "fields": [
3    {
4      "generate": "customer",
5      "dynamicLookup": {
6        "recordType": "customer",
7        "filters": [
8          [
9            "custentity_nm_stripecharge_customer_id",
10            "is",
11            "{{charge.customer}}"
12          ]
13        ],
14        "resultField": "internalid",
15        "default": ""
16      }
17    },
18    {
19      "generate": "account",
20      "hardCodedValue": "2"
21    },
22    {
23      "generate": "total",
24      "handlebars": "{{toFixed (divide amount 100) 2}}"
25    },
26    {
27      "generate": "custbody_nm_pp_stripe_refund_id",
28      "extract": "id"
29    },
30    {
31      "generate": "paymentmethod",
32      "hardCodedValue": "10"
33    }
34  ],
35  "sublist": {
36    "apply": [
37      {
38        "generate": "apply",
39        "hardCodedValue": "T"
40      },
41      {
42        "generate": "doc",
43        "extract": "nsCreditMemoId"
44      }
45    ]
46  }
47}
  1. Sample Cash Sale Field Mappings:
1{
2  "fields": [
3    {
4      "generate": "entity",
5      "dynamicLookup": {
6        "recordType": "customer",
7        "filters": [
8          [
9            "custentity_nm_stripecharge_customer_id",
10            "is",
11            "{{dispute_customer_id}}"
12          ]
13        ],
14        "resultField": "internalid",
15        "default": ""
16      }
17    },
18    {
19      "generate": "custbody_pp_stripe_dispute_id",
20      "extract": "stripeDisputeData.id"
21    },
22    {
23      "generate": "location",
24      "hardCodedValue": "2"
25    }
26  ],
27  "sublist": {
28    "item": [
29      {
30        "generate": "item",
31        "hardCodedValue": "387"
32      },
33      {
34        "generate": "quantity",
35        "hardCodedValue": "1"
36      },
37      {
38        "generate": "price",
39        "hardCodedValue": "-1"
40      },
41      {
42        "generate": "amount",
43   "handlebars": "{{toFixed (divide  lines.data[].pricing.unit_amount_decimal 100) 2}}"
44      },
45      {
46        "generate": "taxcode",
47        "hardCodedValue": "-7"
48      }
49    ]
50  }
51}
  1. Sample Customer Payment Field Mappings:
1{
2  "fields": [
3    {
4      "generate": "customer",
5      "dynamicLookup": {
6        "recordType": "customer",
7        "filters": [
8          [
9            "custentity_nm_stripecharge_customer_id",
10            "is",
11            "{{dispute_customer_id}}"
12          ]
13        ],
14        "resultField": "internalid",
15        "default": ""
16      }
17    },
18    {
19      "generate": "payment",
20      "handlebars": "{{toFixed (divide stripeDisputeData.amount 100) 2}}"
21    },
22    {
23      "generate": "location",
24      "hardCodedValue": "2"
25    },
26    {
27      "generate": "custbody_pp_stripe_dispute_id",
28      "extract": "stripeDisputeData.id"
29    }
30  ]
31}
Was this article helpful?
Yes
No