Skip to content

gdcorp-commerce/poynt-node

Repository files navigation

Poynt Node.js SDK

This SDK helps you connect to the Poynt API from your Node.js apps. You can easily get/create business information, subscribe to webhooks, and send cloud messages to your terminal app.

Documentation

After you've signed up for a Poynt developer account, check out our API reference or our developer guides!

Installation

Install this package:

npm install poynt --save

Usage

You can connect to the Poynt API by passing either a filename or a string containing your PEM-encoded private key you downloaded from Poynt.net. If region param is not set, the SDK uses services.poynt.net endpoint. If you need to hit services-eu.poynt.net, you need to pass region: 'eu'.

var poynt = require("poynt")({
  // region: 'eu',
  applicationId: "urn:aid:your-application-id",
  filename: __dirname + "/key.pem",
});

or

var poynt = require("poynt")({
  applicationId: "urn:aid:your-application-id",
  key: "-----BEGIN RSA PRIVATE KEY-----\n.....\n-----END RSA PRIVATE KEY-----",
});

Then, make a request signed with your app private key:

poynt.getBusiness(
  {
    businessId: "00000000-0000-0000-0000-000000000000",
  },
  function (err, business) {
    if (err) {
      // deal with your error
    } else {
      // do something with business
    }
  }
);

We'll handle all the request signing, token refresh, etc. for you!

Namespaces and methods

  • tokenizeCard
  • charge
  • sendCloudMessage
  • sendRawCloudMessage
  • sendPaymentBridgeMessage
  • getHooks
  • createHook
  • getHook
  • deleteHook
  • getBusiness
  • getBusinessByDeviceId
  • getMerchantPaymentAccount
  • getStore
  • getOrders
  • getOrder
  • createOrder
  • completeOrder
  • getTransactions
  • getTransaction
  • voidTransaction
  • refundTransaction
  • createTransaction
  • getCustomers
  • getCustomer
  • getCatalogs
  • getCatalog
  • getFullCatalog
  • createCatalog
  • createFullCatalog
  • updateCatalog
  • deleteCatalog
  • getCategory
  • createCategory
  • lookupCategories
  • deleteCategory
  • updateCategory

Invoices

  • getInvoices
  • getInvoice
  • createInvoice
  • sendInvoiceReminder
  • cancelInvoice
  • getProducts
  • getProductsSummary
  • lookupProducts
  • getProduct
  • createProduct
  • deleteProduct
  • updateProduct

Reports

  • getReports
  • createReport
  • getTaxes
  • getTax
  • createTax
  • deleteTax
  • updateTax
  • getBusinessUsers
  • getBusinessUser

Business Applications

  • getBusinessApplication
  • getBusinessApplicationStatus
  • getBusinessApplicationAccount
  • getBusinessApplicationOrders
  • getBusinessApplicationProfile

Examples

Charging a token from Poynt Collect V2

The most basic use case is just entering an amount and charging:

poynt.charge(
  {
    action: "SALE",
    amounts: {
      currency: "USD",
      transactionAmount: 500,
      orderAmount: 500,
    },
    businessId: "84fa5bf5-bd51-4653-80de-ce46348f7659",
    token: "...token...",
  },
  function (err, transaction) {
    if (err) {
      // deal with your error
      console.log(err);
    } else {
      // do something with transaction
      console.log(transaction);
    }
  }
);

Many other fields are accepted – including address, phone, and references. The following code makes a charge, fetches the full transaction, and then voids it.

poynt.charge(
  {
    action: "SALE",
    address: {
      line1: "858 University Ave",
      line2: "",
      city: "Palo Alto",
      territory: "CA",
      countryCode: "US",
      postalCode: "94301",
    },
    amounts: {
      currency: "USD",
      transactionAmount: 500,
      orderAmount: 500,
    },
    businessId: "84fa5bf5-bd51-4653-80de-ce46348f7659",
    emailReceipt: true,
    phone: {
      ituCountryCode: "1",
      areaCode: "234",
      localPhoneNumber: "5678901",
    },
    receiptEmailAddress: "[email protected]",
    references: [
      {
        customType: "WEBSITE_ID",
        id: "123456",
        type: "CUSTOM",
      },
      {
        customType: "CHANNEL_ORDER_ID",
        id: "abcdef",
        type: "CUSTOM",
      },
    ],
    sourceApp: "Online Store",
    token: "...token...",
  },
  function (err, transaction) {
    if (err) {
      // deal with your error
      return console.log(err);
    }

    console.log("Transaction processed", JSON.stringify(transaction, null, 2));

    // get the transaction
    poynt.getTransaction(
      {
        businessId: "84fa5bf5-bd51-4653-80de-ce46348f7659",
        transactionId: transaction.id,
      },
      function (err, transaction) {
        if (err) {
          // deal with your error
          return console.log(err);
        }

        console.log(
          "Transaction fetched",
          JSON.stringify(transaction, null, 2)
        );

        // void the transaction
        poynt.voidTransaction(
          {
            businessId: "84fa5bf5-bd51-4653-80de-ce46348f7659",
            transactionId: transaction.id,
          },
          function (err, voidedTransaction) {
            if (err) {
              // deal with your error
              return console.log(err);
            }

            console.log(
              "Transaction voided",
              JSON.stringify(voidedTransaction, null, 2)
            );
          }
        );
      }
    );
  }
);

Apple Pay Registration

  • registerApplePayMerchant
  • unregisterApplePayMerchant
  • getApplePayMerchant
  • getApplePayDomainAssociationFile