diff --git a/.gitignore b/.gitignore
index 432bec5..6bc2f5b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -37,3 +37,7 @@ nosetests.xml
# Sphinx documentation
docs/_build/
+
+#Generated Files
+examples/*/success.csv
+examples/*/errors.csv
diff --git a/examples/README.md b/examples/README.md
index a348ccf..3b10946 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -12,12 +12,12 @@ cd examples/
### Create letters from CSV
-An example showing how to validate and clean addresses from a CSV spreadsheet full of shipping addresses using Lob's [Address Verification API](https://lob.com/verification/address) and then using the cleaned, valid addresses to dynamically create sample billing letters with variable data using Lob's [Letter API](https://lob.com/services/letters).
+An example showing how to dynamically create sample billing letters with variable data using Lob's [Letter API](https://lob.com/services/letters).
In order to run the program enter:
```
-cd verify_and_create_letters_from_csv/
+cd create_letters_from_csv/
python letter.py input.csv
```
@@ -32,6 +32,17 @@ cd create_postcards_from_csv/
python create_postcards_from_csv.py input.csv
```
+### Create checks from CSV
+
+An example showing how to dynamically create checks from a CSV with variable data using Lob's [Postcard API](https://lob.com/services/postcards).
+
+In order to run the program enter:
+
+```
+cd create_check_from_csv/
+python check.py input.csv
+```
+
### Verify addresses from CSV
An example showing how to validate and cleanse a CSV spreadsheet full of shipping addresses using Lob's [Address Verification API](https://lob.com/verification/address).
diff --git a/examples/create_checks_from_csv/check.html b/examples/create_checks_from_csv/check.html
new file mode 100644
index 0000000..1ada082
--- /dev/null
+++ b/examples/create_checks_from_csv/check.html
@@ -0,0 +1,59 @@
+
+
+
+
+ Lob.com Sample Check
+
+
+
+
+
+
+
Demo check for {{name}}
+
+
+
+
diff --git a/examples/create_checks_from_csv/check.py b/examples/create_checks_from_csv/check.py
new file mode 100644
index 0000000..2591fd7
--- /dev/null
+++ b/examples/create_checks_from_csv/check.py
@@ -0,0 +1,108 @@
+# Usage
+# python check.py input.csv
+import sys,os
+sys.path.insert(0, os.path.abspath(__file__+'../../../..'))
+
+import lob
+import csv
+
+lob.api_key = 'test_fc26575412e92e22a926bc96c857f375f8b' # TODO Replace with your API key
+
+skipFirstLine = True
+
+# Column indices in CSV
+name = 0
+amount = 1
+address_line1 = 2
+address_line2 = 3
+address_city = 4
+address_state = 5
+address_zip = 6
+country = 'US'
+
+try:
+ sys.argv[1]
+except IndexError:
+ print "Please provide an input CSV file as an argument."
+ sys.exit()
+
+# Open input files
+inputFile = open(sys.argv[1], 'rU')
+csvInput = csv.reader(inputFile)
+
+# Create output files
+errors = open(os.path.dirname(os.path.abspath(__file__)) + '/errors.csv', 'w')
+success = open(os.path.dirname(os.path.abspath(__file__)) + '/success.csv', 'w')
+
+# Creating a Bank Account using the previously created account_address
+
+bankAccount = lob.BankAccount.create(
+ description = 'Example bank account',
+ routing_number = '122100024',
+ account_number = '0123456478',
+ account_type = 'company',
+ signatory = 'John Doe'
+)
+
+# Verifying a Bank Account with the microdeposit amounts
+
+example_bank_account = lob.BankAccount.verify(
+ id = bankAccount.id,
+ amounts = [23, 77]
+)
+
+# Loop through input CSV rows
+for idx, row in enumerate(csvInput):
+ if skipFirstLine and idx == 0:
+ continue
+
+ # Create letter for verified addresses
+ try:
+ createdCheck = lob.Check.create(
+ description = 'Check for ' + row[name],
+ metadata = {
+ 'campaign': 'Bill pay',
+ 'csv': inputFile.name
+ },
+ to_address = {
+ 'name': row[name],
+ 'address_line1': row[address_line1],
+ 'address_line2': row[address_line2],
+ 'address_city': row[address_city],
+ 'address_zip': row[address_zip],
+ 'address_state': row[address_state],
+ },
+ from_address = {
+ 'name': 'Your Name/Company',
+ 'address_line1': '123 Test Avenue',
+ 'address_city': 'San Francisco',
+ 'address_state': 'CA',
+ 'address_zip': '94107',
+ },
+ bank_account = bankAccount,
+ amount = row[amount],
+ memo = 'Service payment',
+ check_bottom = open(os.path.dirname(os.path.abspath(__file__)) + '/check.html', 'r').read(),
+ data = {
+ 'name': row[name],
+ },
+ logo = 'https://s3-us-west-2.amazonaws.com/lob-assets/lob_check_logo.png'
+ )
+ except Exception, e:
+ print "Error: " + str(e) + " in " + str(row)
+ else:
+ outputRow = createdCheck.id + ","
+ outputRow += createdCheck.url + ","
+ outputRow += row[name] + ","
+ outputRow += row[amount] + ","
+ outputRow += (createdCheck.to_address.address_line1 if createdCheck.to_address.address_line1 != None else " ") + ","
+ outputRow += (createdCheck.to_address.address_line2 if createdCheck.to_address.address_line2 != None else " ") + ","
+ outputRow += (createdCheck.to_address.address_city if createdCheck.to_address.address_city != None else " ") + ","
+ outputRow += (createdCheck.to_address.address_state if createdCheck.to_address.address_state != None else " ") + ","
+ outputRow += (createdCheck.to_address.address_zip if createdCheck.to_address.address_zip != None else " ") + "\n"
+ success.write(outputRow)
+
+
+errors.close()
+success.close()
+print "\n"
diff --git a/examples/verify_and_create_letters_from_csv/input.csv b/examples/create_checks_from_csv/input.csv
similarity index 100%
rename from examples/verify_and_create_letters_from_csv/input.csv
rename to examples/create_checks_from_csv/input.csv
diff --git a/examples/create_letters_from_csv/input.csv b/examples/create_letters_from_csv/input.csv
new file mode 100644
index 0000000..d029607
--- /dev/null
+++ b/examples/create_letters_from_csv/input.csv
@@ -0,0 +1,8 @@
+name, amount,address1,address2,city,state,postcode
+Kelly Jones,185.54,185 Berry St,,San Francisco,CA,94107
+Margaret Smith,387.45,6575 W Rialto,,fresno,CA,93723
+Jess Smith,19.87,537 Fillmore Street, Apt #2,San Francicso,ca,94117
+Michael Thruman,347.21,1625 Post St,,San Francisco,CA,94115
+Gerald Merritt,278.40,333 Post St,,San Francisco,CA,94108
+Linda Anderson,425.40,655 Fake Address,Fake Apartment,Not a City,CA,06475-1246
+John Travolta,175.84,111 NotAnAddress,,San Francisco,CA,94107
diff --git a/examples/verify_and_create_letters_from_csv/letter_template.html b/examples/create_letters_from_csv/letter.html
similarity index 100%
rename from examples/verify_and_create_letters_from_csv/letter_template.html
rename to examples/create_letters_from_csv/letter.html
diff --git a/examples/create_letters_from_csv/letter.py b/examples/create_letters_from_csv/letter.py
new file mode 100644
index 0000000..28111a6
--- /dev/null
+++ b/examples/create_letters_from_csv/letter.py
@@ -0,0 +1,91 @@
+# Usage
+# python letter.py input.csv
+import sys,os
+sys.path.insert(0, os.path.abspath(__file__+'../../../..'))
+
+import lob
+import csv
+import datetime
+
+lob.api_key = 'test_fc26575412e92e22a926bc96c857f375f8b'
+
+skipFirstLine = True
+
+# Column indices in CSV
+name = 0
+amount = 1
+address_line1 = 2
+address_line2 = 3
+address_city = 4
+address_state = 5
+address_zip = 6
+country = 'US'
+
+try:
+ sys.argv[1]
+except IndexError:
+ print "Please provide an input CSV file as an argument."
+ sys.exit()
+
+# Open input files
+inputFile = open(sys.argv[1], 'rU')
+csvInput = csv.reader(inputFile)
+
+# Create output files
+errors = open(os.path.dirname(os.path.abspath(__file__)) + '/errors.csv', 'w')
+success = open(os.path.dirname(os.path.abspath(__file__)) + '/success.csv', 'w')
+
+# Loop through input CSV rows
+for idx, row in enumerate(csvInput):
+ if skipFirstLine and idx == 0:
+ continue
+
+ # Create letter for verified addresses
+ try:
+ createdLetter = lob.Letter.create(
+ description = 'Bill for ' + row[name],
+ metadata = {
+ 'campaign': 'billing_statements',
+ 'csv': inputFile.name
+ },
+ to_address = {
+ 'name': row[name],
+ 'address_line1': row[address_line1],
+ 'address_line2': row[address_line2],
+ 'address_city': row[address_city],
+ 'address_zip': row[address_zip],
+ 'address_state': row[address_state],
+ },
+ from_address = {
+ 'name': 'Your Name/Company',
+ 'address_line1': '123 Test Avenue',
+ 'address_city': 'San Francisco',
+ 'address_state': 'CA',
+ 'address_zip': '94107',
+ },
+ file = open(os.path.dirname(os.path.abspath(__file__)) + '/letter.html', 'r').read(),
+ data = {
+ 'date': datetime.datetime.now().strftime("%m/%d/%Y"),
+ 'name': row[name],
+ 'amountDue': row[amount]
+ },
+ color = True
+ )
+ except Exception, e:
+ print "Error: " + str(e) + " in " + str(row)
+ else:
+ outputRow = createdLetter.id + ","
+ outputRow += createdLetter.url + ","
+ outputRow += row[name] + ","
+ outputRow += row[amount] + ","
+ outputRow += (createdLetter.to_address.address_line1 if createdLetter.to_address.address_line1 != None else " ") + ","
+ outputRow += (createdLetter.to_address.address_line2 if createdLetter.to_address.address_line2 != None else " ") + ","
+ outputRow += (createdLetter.to_address.address_city if createdLetter.to_address.address_city != None else " ") + ","
+ outputRow += (createdLetter.to_address.address_state if createdLetter.to_address.address_state != None else " ") + ","
+ outputRow += (createdLetter.to_address.address_zip if createdLetter.to_address.address_zip != None else " ") + "\n"
+ success.write(outputRow)
+
+
+errors.close()
+success.close()
+print "\n"
diff --git a/examples/verify_and_create_letters_from_csv/letter.py b/examples/verify_and_create_letters_from_csv/letter.py
deleted file mode 100644
index 16f4cd5..0000000
--- a/examples/verify_and_create_letters_from_csv/letter.py
+++ /dev/null
@@ -1,118 +0,0 @@
-# Usage
-# python verify.py input.csv
-import sys,os
-sys.path.insert(0, os.path.abspath(__file__+'../../../..'))
-
-import lob
-import csv
-import datetime
-
-lob.api_key = 'test_fc26575412e92e22a926bc96c857f375f8b'
-
-skipFirstLine = True
-
-# Column indices in CSV
-name = 0
-amount = 1
-address1 = 2;
-address2 = 3;
-city = 4;
-state = 5;
-postcode = 6;
-country = 'US'
-
-try:
- sys.argv[1]
-except IndexError:
- print "Please provide an input CSV file as an argument."
- sys.exit()
-
-# Open input files
-inputFile = open(sys.argv[1], 'rU')
-csvInput = csv.reader(inputFile)
-
-# Create output files
-errors = open(os.path.dirname(os.path.abspath(__file__)) + '/errors.csv', 'w')
-verified = open(os.path.dirname(os.path.abspath(__file__)) + '/verified.csv', 'w')
-success = open(os.path.dirname(os.path.abspath(__file__)) + '/success.csv', 'w')
-
-# Loop through input CSV rows
-for idx, row in enumerate(csvInput):
- if skipFirstLine and idx == 0:
- continue
-
- # Sanity check
- sys.stdout.write('.')
- sys.stdout.flush()
-
- # Verify addresses
- try:
- verifiedAddress = lob.Verification.create(
- address_line1 = row[address1],
- address_line2 = row[address2],
- address_city = row[city],
- address_state = row[state],
- address_zip = row[postcode],
- address_country = country
- )
- except Exception, e:
- outputRow = ",".join(row) + "," + str(e)+ "\n"
- errors.write(outputRow)
- else:
- outputRow = row[name] + ","
- outputRow += row[amount] + ","
- outputRow += verifiedAddress.address.address_line1 + ","
- outputRow += verifiedAddress.address.address_line2 + ","
- outputRow += verifiedAddress.address.address_city + ","
- outputRow += verifiedAddress.address.address_state + ","
- outputRow += verifiedAddress.address.address_zip + "\n"
- verified.write(outputRow)
-
- # Create letter for verified addresses
- try:
- createdLetter = lob.Letter.create(
- description = 'Bill for ' + row[name],
- metadata = {
- 'campaign': 'billing_statements'
- },
- to_address = {
- 'name': row[name],
- 'address_line1': verifiedAddress.address.address_line1,
- 'address_city': verifiedAddress.address.address_city,
- 'address_zip': verifiedAddress.address.address_zip,
- 'address_state': verifiedAddress.address.address_state,
- },
- from_address = {
- 'name': 'Your Name/Company',
- 'address_line1': '123 Test Avenue',
- 'address_city': 'San Francisco',
- 'address_state': 'CA',
- 'address_zip': '94107',
- },
- file = open(os.path.dirname(os.path.abspath(__file__)) + '/letter_template.html', 'r').read(),
- data = {
- 'date': datetime.datetime.now().strftime("%m/%d/%Y"),
- 'name': row[name],
- 'amountDue': row[amount]
- },
- color = True
- )
- except Exception, e:
- print "Error: " + str(e) + " in " + str(row)
- else:
- outputRow = createdLetter.id + ","
- outputRow += createdLetter.url + ","
- outputRow += row[name] + ","
- outputRow += row[amount] + ","
- outputRow += (createdLetter.to_address.address_line1 if createdLetter.to_address.address_line1 != None else " ") + ","
- outputRow += (createdLetter.to_address.address_line2 if createdLetter.to_address.address_line2 != None else " ") + ","
- outputRow += (createdLetter.to_address.address_city if createdLetter.to_address.address_city != None else " ") + ","
- outputRow += (createdLetter.to_address.address_state if createdLetter.to_address.address_state != None else " ") + ","
- outputRow += (createdLetter.to_address.address_zip if createdLetter.to_address.address_zip != None else " ") + "\n"
- success.write(outputRow)
-
-
-errors.close()
-verified.close()
-success.close()
-print "\n"