Skip to content

durango/authorize-net-cim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Authorize.net CIM

Dependency Status devDependency Status

Authorize.net CIM bindings for Node.JS

Install

npm install auth-net-cim

Tests

AUTH_CONFIG=/path/to/config.json make tests

config.json

{
  "api": "123",
  "key": "1234",
  "sandbox": true
}

Usage

Assuming we're doing:

var Authorize = require('auth-net-types')
  , _AuthorizeCIM = require('auth-net-cim')
  , AuthorizeCIM = new _AuthorizeCIM({
    api: '123',
    key: '124',
    sandbox: true // false
  });

createCustomerProfile

AuthorizeNetCIM.createCustomerProfile({customerProfile: {
  merchantCustomerId: 123,
  description: 'A customer with a lot of cash.',
  email: 'completelyfake@dontemail.com',
  customerProfileId: 1234
}}, function(err, response){})
var profile = {
  merchantCustomerId: 123,
  description: 'A customer with a lot of cash.',
  email: 'completelyfake@dontemail.com',
  customerProfileId: 1234
}

var bankAccount = new Authorize.BankAccount({
  accountType: 'businessChecking',
  routingNumber: '121042882',
  accountNumber: '123456789123',
  nameOnAccount: 'Jane Doe',
  bankName: 'Pandora Bank'
})
, payment = new Authorize.Payment({
  bankAccount: bankAccount
});

profile.paymentProfiles = new Authorize.PaymentProfiles({
  customerType: 'business',
  payment: payment
});

AuthorizeNetCIM.createCustomerProfile({customerProfile: profile}, function(err, response){});

createCustomerPaymentProfile

var options = {
  customerType: 'individual',
  payment: {
    creditCard: new Authorize.CreditCard({
      cardNumber: '4111111111111111',
      expirationDate: '2012-10'
    })
  }
}

AuthorizeCIM.createCustomerPaymentProfile({
  customerProfileId: '123',
  paymentProfile: options
}, function(err, response) {});

createCustomerProfileFromTransaction

AuthorizeNetCIM.createCustomerProfileFromTransaction({customerProfile: {
  transactionId: 1234
}}, function(err, response){})

createCustomerShippingAddress

AuthorizeCIM.createCustomerShippingAddress({
  customerProfileId: '123',
  shippingAddress: new Authorize.ShippingAddress({
    firstName: 'Bob',
    lastName: 'Smith',
    address: '123 Sesame St',
    city: 'Gainesville',
    state: 'FL',
    zip: 32601,
    country: 'us'
  })
}, function(err, response) {});

updateCustomerProfile

AuthorizeCIM.updateCustomerProfile(new Authorize.CustomerBasic({
  email: 'newfakeemail@email.com',
  merchantCustomerId: 1234,
  description: 'New description!',
  customerProfileId: this.customerProfileId
}), function(err, response) {});

updateCustomerPaymentProfile

AuthorizeCIM.updateCustomerPaymentProfile({
  customerProfileId: '123',
  paymentProfile: new Authorize.PaymentProfile({
    customerPaymentProfileId: 444,
    customerType: 'business',
    payment: new Authorize.Payment({
      creditCard: new Authorize.CreditCard({
        cardNumber: '4007000000027',
        expirationDate: '2012-10',
        cardCode: 111
      })
    })
  })
}, function(err, response) {});

updateCustomerShippingAddress

AuthorizeCIM.updateCustomerShippingAddress({
  customerProfileId: '123',
  address: new Authorize.ShippingAddress({
    firstName: 'John',
    lastName: 'Smith',
    state: 'TX',
    country: 'US',
    zip: 11111,
    customerAddressId: null
  })
}, function(err, response) {});

getCustomerProfile

AuthorizeCIM.getCustomerProfile('123', function(err, response) {});

getCustomerPaymentProfile

AuthorizeCIM.getCustomerPaymentProfile({
  customerProfileId: '123',
  customerPaymentProfileId: '1234'
}, function(err, response) {});

getCustomerShippingAddress

AuthorizeCIM.getCustomerShippingAddress({
  customerProfileId: '123',
  customerAddressId: '1234'
}, function(err, response) {});

validateCustomerPaymentProfile

AuthorizeCIM.validateCustomerPaymentProfile({
  customerProfileId: '123',
  customerPaymentProfileId: '1234',
  validationMode: 'testMode' // liveMode
}, function(err, response) {});

createCustomerProfileTransaction

var transaction = {
  amount: 56.01,
  tax: {
    amount: 12.44,
    name: 'State Tax',
    description: 'FL'
  },
  shipping: {
    amount: 5.00,
    name: 'FedEx Ground',
    description: 'No Free Shipping Option'
  },
  customerProfileId: '123',
  customerPaymentProfileId: '1234',
  order: {
    invoiceNumber: 1337
  }
};

AuthorizeCIM.createCustomerProfileTransaction('AuthCapture' /* AuthOnly, CaptureOnly, PriorAuthCapture */, transaction, function(err, response) {});

updateSplitTenderGroup

AuthorizeCIM.updateSplitTenderGroup({
  splitTenderId: 1,
  splitTenderStatus: 'voided'
}, function(err, response) {});

deleteCustomerPaymentProfile

AuthorizeCIM.deleteCustomerPaymentProfile({
  customerProfileId: '123',
  customerPaymentProfileId: '1234'
}, function(err, response) {});

deleteCustomerShippingAddress

AuthorizeCIM.deleteCustomerShippingAddress({
  customerProfileId: '123',
  customerAddressId: '1234'
}, function(err, response) {});

deleteCustomerProfile

AuthorizeCIM.deleteCustomerProfile('123', function(err, response) {});

setExtraOptions

AuthorizeCIM.setExtraOptions({
  x_duplicate_window: 0
});
AuthorizeCIM.createCustomerProfileTransaction(..., function(err) {
  // Then clear the extra options if needed
  AuthorizeCIM.setExtraOptions();
});

Note

Version >= 2.x.x has a breaking change, all values are returned as strings rather than strings and numbers (unless the value is an object, array, etc).

About

Authorize.net CIM bindings for Node.JS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published