@nuskin/payment-profile-sdk
v1.1.2
Published
Client SDK for the payment profile service
Keywords
Readme
@nuskin/payment-profile-sdk
This SDK provides functions and data types for working with the Payment Profile API.
Installing
Usng npm:
npm add @nuskin/payment-profile-sdkUsng yarn:
yarn add @nuskin/payment-profile-sdkExample Usage
import { PaymentProfileClient } from "@nuskin/payment-profile-sdk";
const client = new PaymentProfileClient({
env: "prod",
userSapId: "US12345678",
userEid: "aBcD...1234",
clientId: "1a2b...9e0f",
clientSecret: "aaff...8080",
market: "US",
language: "en"
});Parameters:
env: (REQUIRED) runtime environment ("dev", "test", or "prod")userSapId: (REQUIRED) SAP ID of the useruserEid: (REQUIRED) EID auth token of the userclientId: (REQUIRED) client IDclientSecret: (REQUIRED) client secretmarket: (REQUIRED) market country codelanguage: (REQUIRED) market language codepaymetricMerchantGuid: (OPTIONAL) Paymetric merchant GUID; required only for payment tokenization
Get available payment types
This method retrieves a list of the payment types (e.g. VISA, MasterCard, SEPA, etc.) that are available for use in a given shopping context.
const paymentTypes = await client.getPaymentTypesByContext({
market: "NL",
shipToCountry: "BE",
shopContext: "PROFILE",
orderType: "NO CONTEXT",
isSignup: false
})Parameters:
market{string}: (OPTIONAL) market country code, if different from the payment profile client's market country codeshipToCountry{string}: (OPTIONAL) country code to which orders would be shipped, if different from the market country codeshopContext{string}: (OPTIONAL) shopping context for ordersorderType{string}: (OPTIONAL) order typeisSignup{boolean}: (OPTIONAL) flag indicating that this is a signup context
Resolves to a list of Payment Type objects.
Get Saved Payments
This method retrieves a list of the user's saved payment methods.
const payments = await client.getSavedPayments();const payments = await client.getSavedPayments({
includeAll: true
});Parameters:
includeAll{boolean}: (OPTIONAL): Flag indicating that the returned saved payments should include all payment types, specifically those like WIRE and SEPA that would normally be omitted.
Resolves to a list of Payment objects.
Save New Payment
This method saves a new payment method to the user's profile.
const newPayment = {
paymentTypeId: 2,
paymentName: "John Doe",
paymentNumber: "1234567890123456",
paymentPostalCode: "9001",
/* ... */
};
const savedPayment = await client.createPayment(newPayment);Accepts a Payment Draft object and resolves to a Payment object.
Update Saved Payment
This method updates a saved payment method.
const paymentToUpdate = {
bePaymentTypeId: 314159
paymentTypeId: 0,
paymentName: "John Doe",
paymentNumber: "*********1234",
expMonth: "08",
expYear: "29"
/* ... */
};
const updatedPayment = await client.updatePayment(paymentToUpdate);Accepts a Payment object and resolves to a Payment object.
Delete Saved Payment
This method deletes a saved payment method from the user's profile.
const paymentToDelete = {
bePaymentTypeId: 314159
paymentTypeId: 0,
paymentName: "John Doe",
paymentNumber: "*********1234",
expMonth: "08",
expYear: "29"
/* ... */
};
await client.deletePayment(paymentToDelete.bePaymentTypeId);Accepts the BE Payment Type ID (bePaymentTypeId) field of the payment method to delete. Resolves when the payment method is deleted successfully.
Tokenize Payment Number
This method converts a given payment number to a token that can be used in that payment number's place.
const tokenizedPaymentNumber = await client.tokenizePaymentNumber("1234567890123456");Accepts a payment number (e.g. a CC number or IBAN) as a string and resolves to a token as a string.
List of Payment Types
The SDK exposes an object containing the IDs of all supported payment types:
import { PaymentTypes } from "@nuskin/payment-profile-sdk";
PaymentTypes.VISA // = 0
PaymentTypes.MC // = 1
PaymentTypes.JCB // = 21
PaymentTypes.SDD // = 54
PaymentTypes.CITI // = 121List of Credit Card Payment Types
The SDK also exposes a list of the payment type IDs of all credit-card payment types:
import { CreditCardPaymentTypeIds } from "@nuskin/payment-profile-sdk";
CreditCardPaymentTypeIds; // [0, 1, 2, 3, 21, ...]Data Types
This SDK uses the following data types.
Payment Type
Object representing a payment type and its settings.
id{number}: Payment type ID.ofsId{string}: Payment type OFS ID.blocked{boolean}: Flag indicating that this payment type is blocked.processorCode{string}: Payment processor for this payment type.formName{string}: Name of the payment form used with this payment type.paymentClass{string}: Payment class.localizedName{string}: Payment type's localized name.installmentsAllowed{boolean}: Flag indicating that installments are allowed with this payment type.binListInstallmentCheck{boolean}: Flag indicating that a BIN list installment check is required.cvvRequired{boolean}: Flag indicating that a CVV code is required with this payment type.needsTokenization{boolean}: Flag indicating that this payment type requires tokenization.hideInstallmentOptions{boolean}: Flag indicating that installment options should be hidden.updateTimestamp{number}: timestamp when this payment type information was last updated.context{string}: context code to which this payment type information applies.
Payment Draft
Object representing a new payment method to be saved.
paymentTypeId{number}: ID of the payment type.paymentName{string}: (OPTIONAL) Payment name or billing name.paymentNumber{string}: (OPTIONAL) CC or IBAN number. Saved payments are returned with this field masked.expMonth{string}: (OPTIONAL) Two-digit string representing the month this payment expires. Examples: "01" = January, "12" = December.expYear{string}: (OPTIONAL) Two-digit string representing the year this payment expires. Examples: "99" = 1999, "00" = 2000, "25" = 2025.address1{string}: (OPTIONAL) Billing address line 1.address2{string}: (OPTIONAL) Billing address line 2.city{string}: (OPTIONAL) Billing address city.district{string}: (OPTIONAL) Billing address distric/county name.region{string}: (OPTIONAL) Billing address region/state code.paymentPostalCode(OPTIONAL) {string}: Billing address postal code.countryCode{string}: (OPTIONAL) Billing address country code.email{string}: (OPTIONAL) Billing email address.phone{string}: (OPTIONAL) Billing phone number.ccToken{string}: (OPTIONAL) Tokenized CC or IBAN number.defaultPayment{boolean}: (OPTIONAL) Flag indicating that this is the user's default payment method.storedCredentialsAgreementDate{string}: (OPTIONAL) Date when the stored credentials agreement was signed.storedCredentialsNetworkTransactionId{string}: (OPTIONAL) ID of the stored credentials network transaction.
Payment
Object representing a saved payment method.
bePaymentTypeId{number}: ID of this payment. Assigned by the server. Do not alter.paymentTypeId{number}: ID of the payment type.paymentTypeDescription{string}: (OPTIONAL) localized description of the payment type.paymentName{string}: (OPTIONAL) Payment name or billing name.paymentNumber{string}: (OPTIONAL) CC or IBAN number. Saved payments are returned with this field masked.expMonth{string}: (OPTIONAL) Two-digit string representing the month this payment expires. Examples: "01" = January, "12" = December.expYear{string}: (OPTIONAL) Two-digit string representing the year this payment expires. Examples: "99" = 1999, "00" = 2000, "25" = 2025.address1{string}: (OPTIONAL) Billing address line 1.address2{string}: (OPTIONAL) Billing address line 2.city{string}: (OPTIONAL) Billing address city.district{string}: (OPTIONAL) Billing address distric/county name.region{string}: (OPTIONAL) Billing address region/state code.paymentPostalCode(OPTIONAL) {string}: Billing address postal code.countryCode{string}: (OPTIONAL) Billing address country code.email{string}: (OPTIONAL) Billing email address.phone{string}: (OPTIONAL) Billing phone number.ccToken{string}: (OPTIONAL) Tokenized CC or IBAN number.defaultPayment{boolean}: (OPTIONAL) Flag indicating that this is the user's default payment method.storedCredentialsAgreementDate{string}: (OPTIONAL) Date when the stored credentials agreement was signed.storedCredentialsNetworkTransactionId{string}: (OPTIONAL) ID of the stored credentials network transaction.
