<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>IBiz</title>
        <link>http://geekswithblogs.net/Lance/category/6619.aspx</link>
        <description>IBiz</description>
        <language>en-US</language>
        <copyright>Lance Robinson</copyright>
        <managingEditor>lmrobins@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>ASP.Net Medium Trust and IPWorks/IBiz ASP.Net Editions</title>
            <link>http://geekswithblogs.net/Lance/archive/2008/02/21/asp.net-medium-trust-and-ipworksibiz-asp.net-editions.aspx</link>
            <description>&lt;p&gt;This great MSDN article: "&lt;a href="http://msdn2.microsoft.com/en-us/library/ms998341.aspx"&gt;How To: Use Medium Trust in ASP.NET 2.0&lt;/a&gt;" will probably answer nearly all of your questions about how to work in medium trust and how to customize medium trust permissions.  Here are a few extracts from this document that serve as a sort of "quick start" to medium trust.&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;By default, ASP.NET 2.0 Web applications and Web services run with full trust and applications can perform privileged operations and access resources subject only to operating system security and Windows access control lists (ACLs).  You can use code access security (CAS) to restrict access to certain resources by using the &lt;strong&gt;trust&lt;/strong&gt; element of the web.config.  You can set full, high, medium, low, and minimal trust.  &lt;/li&gt;
    &lt;li&gt;Medium restricts you from using OldDbPermission, EventLogPermission, ReflectionPermission, RegistryPermission, calling unmanaged code, and using Enterprise Services.  Also WebPermission (you can only communicate with address(es) defined in the trust element) and FileIOPermission (You can only access files in your applications virtual directory hierarchy) are restricted.  &lt;/li&gt;
    &lt;li&gt;To turn on medium trust, set the trust level to medium in your app-level or machine-level web.config (&amp;lt;trust level="Medium" /&amp;gt;).  Consider the originUrl attribute for the trust element, which allows you to limit what Urls the web application(s) can access.  &lt;/li&gt;
    &lt;li&gt;You can customize medium trust restrictions (e.g., modify FileIOPermission to allow access to a specific directory outside of the applications virtual directory hierarchy) by creating a custom policy file and custom policy level.  There is a great example of this provided in the article.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note: machine.config can be found in the "%windir%\Microsoft.Net\Framework\&lt;em&gt;xxx&lt;/em&gt;\config" directory.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How all this applies to &lt;a target="_blank" href="http://www.nsoftware.com/ipworks/default.aspx?geekswithblogs" title="IP*Works Internet Toolkit"&gt;IP*Works!&lt;/a&gt; and &lt;a href="http://www.nsoftware.com/ibiz/?geekswithblogs" title="IBiz"&gt;IBiz&lt;/a&gt; products:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;In general, all /n software .Net components will need the following permissions, all of which are granted by default in Medium trust except SocketPermission:&lt;br /&gt;
    &lt;br /&gt;
    &lt;ol&gt;
        &lt;li&gt;FileIOPermission - all components, for licensing and file access.  &lt;/li&gt;
        &lt;li&gt;ReflectionPermission - all components, for licensing.  &lt;/li&gt;
        &lt;li&gt;SocketPermission - all components that use socket communication.  &lt;/li&gt;
        &lt;li&gt;DnsPermission - anytime a hostname is used instead of a dotted IP address.&lt;/li&gt;
    &lt;/ol&gt;
    &lt;br /&gt;
    To add SocketPermission to your custom medium trust, just add the following security class and ipermission to your custom policy config:&lt;br /&gt;
    &lt;br /&gt;
    &lt;em&gt;&amp;lt;SecurityClass Name="SocketPermission" Description="System.Net.SocketPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/&amp;gt;&lt;/em&gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;em&gt;&amp;lt;IPermission class="SocketPermission" version="1" Unrestricted="true" /&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;/em&gt; &lt;/li&gt;
    &lt;li&gt;If you build with nsoftware.System.dll or if you're using a product that uses unsafe or unmanaged code (like SSL which uses pinvokes to security libraries installed on Windows machines), you'll need to set the SkipVerification flags and ManagedCode flags (respectively) of SecurityPermission in your custom policy file.  &lt;/li&gt;
    &lt;li&gt;You may wish to &lt;a href="http://weblogs.asp.net/hosterposter/archive/2006/03/22/440886.aspx"&gt;alter the WebPermission permission&lt;/a&gt; to allow access to any Uri.  &lt;/li&gt;
    &lt;li&gt;You could use CodeGroups with the IMembershipCondition (StrongNameMembershipCondition) to restrict custom config settings specifically to code signed by /n software.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=119861"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=119861" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Lance/aggbug/119861.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lance Robinson</dc:creator>
            <guid>http://geekswithblogs.net/Lance/archive/2008/02/21/asp.net-medium-trust-and-ipworksibiz-asp.net-editions.aspx</guid>
            <pubDate>Thu, 21 Feb 2008 18:58:13 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Lance/comments/119861.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Lance/archive/2008/02/21/asp.net-medium-trust-and-ipworksibiz-asp.net-editions.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/Lance/comments/commentRss/119861.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Lance/services/trackbacks/119861.aspx</trackback:ping>
        </item>
        <item>
            <title>Shipping APIs - FedEx</title>
            <link>http://geekswithblogs.net/Lance/archive/2007/07/18/Shipping-APIs-FedEx.aspx</link>
            <description>&lt;p&gt;In my last post I talked about an API for shipping via USPS, and promised a similar walk-through for shipping via FedEx.  Well, here it is - an introduction to adding FedEx shipping to your desktop and web applications using the &lt;a href="http://www.nsoftware.com/ibiz/fedex/default.aspx?geekswithblogs" title="IBiz"&gt;IBiz FedEx Integrator&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.nsoftware.com/ibiz/fedex/default.aspx"&gt;IBiz FedEx Integrator&lt;/a&gt; is a tookit that enables software developers to quickly and easily incorporate FedEx shipping capabilities into their software applications and websites.  The toolkit includes components for shipping, tracking, and rate calculation: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Locator&lt;/strong&gt; component: Used to locate FedEx locations that are close to a given address or telephone number. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Rates&lt;/strong&gt; component: Retreives courtesy rate quotes from FedEx for a specific account and service types. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Ship&lt;/strong&gt; component: Generates FedEx shipping labels complete with address and barcodes. This component also gives you the ability to cancel a shipment or close out FedEx Ground shipments. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Track&lt;/strong&gt; component: Provides tracking information for packages. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Subscribe&lt;/strong&gt; component: Provides a unique meter number specific to the customer's FedEx account. &lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;&lt;hr /&gt;
&lt;/h4&gt;
&lt;h4&gt;Getting Started&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Certification with FedEx&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;FedEx requires that all applications that print shipping labels pass a series of certification tests prior to being placed in production. The full version of IBiz FedEx Integrator gives you access to a &lt;em&gt;certification package&lt;/em&gt; that makes this process very easy. The certification package is available by request to all owners of any licensed version of IBiz FedEx Integrator.  It includes all test scenarios required by FedEx for FedEx Express and Ground (international and domestic), and Home Delivery. Through the application included in the certification package you can generate all shipping labels for selected scenarios applicable to your shipping needs with a click of a button.  After you get registered for this certification you'll also need to subscribe to FedEx Services (next paragraph). &lt;/p&gt;
&lt;p&gt;To request materials for certification please &lt;a href="http://www.nsoftware.com/support/"&gt;contact /n software support&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Subscribe to FedEx Services&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;Before you can communicate with FedEx electronically you need to have both a FedEx account number and a FedEx meter number.  First you must have a FedEx account number, then you can use the Subscribe component included in the IBiz FedEx Integrator to subscribe to FedEx Services and get a meter number assigned to your account number.  This subscription is a one-time process. &lt;/p&gt;
&lt;p&gt;The response to the Subscribe component's Register method will contain your assigned FedEx Meter Number as well as which FedEx services are authorized for that particular FedEx Account. &lt;/p&gt;
&lt;p&gt;You will need to submit this subscription request twice: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;em&gt;Once&lt;/em&gt; after you are registered in the FedEx Test Environment. To register in the FedEx Ship Manager (FSM) Direct program, go to &lt;a href="http://www.fedex.com/us/solutions/wis/"&gt;http://www.fedex.com/us/solutions/wis/&lt;/a&gt;. &lt;/li&gt;
    &lt;li&gt;&lt;em&gt;Once&lt;/em&gt; after you are certified to access the FedEx Production Environment. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You should record the returned meter number and use it with each request sent to FedEx. &lt;/p&gt;
&lt;p&gt;Your typical online retailer needs to ship items to his customers, and this simple task involves several steps: &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;a href="#step2"&gt;Allow the customer to choose what type of shipping to use, and show the cost and delivery time of each choice. &lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="#step3"&gt;Print a shipping label for the package. &lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="#step4"&gt;Provide the customer with a shipment tracking number. &lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="#step5"&gt;Give the package to FedEx&lt;/a&gt;. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now here is how we can implement each of these tasks. &lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;1.   &lt;/strong&gt;&lt;strong&gt;Allow the customer to choose what type of shipping to use, show them the cost and estimated delivery time of each choice.&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;After you get the customers shipping address, you can retrieve the cost of delivery and an estimated date of delivery using the Rates component. &lt;/p&gt;
&lt;p&gt;To determine the rate to ship a regular FedEx envelope from my zip code (27502) to a sample address (20770), I can use the following code:&lt;/p&gt;
&lt;pre style="color: rgb(0, 0, 0);"&gt;  Rates1.ServerURL = &lt;span style="color: rgb(132, 130, 132);"&gt;&lt;a href="https://gateway.fedex.com:443/GatewayDC"&gt;https://gateway.fedex.com:443/GatewayDC&lt;/a&gt;&lt;/span&gt;;&lt;br /&gt;  Rates1.AccountNumber = acctnum;&lt;br /&gt;  Rates1.MeterNumber = meternum;&lt;br /&gt;  Rates1.FromPostalCode = &lt;span style="color: rgb(132, 130, 132);"&gt;"27502"&lt;/span&gt;;&lt;br /&gt;  Rates1.FromState = &lt;span style="color: rgb(132, 130, 132);"&gt;"NC"&lt;/span&gt;;&lt;br /&gt;  Rates1.DestinationPostalCode = &lt;span style="color: rgb(132, 130, 132);"&gt;"20770"&lt;/span&gt;;&lt;br /&gt;  Rates1.DestinationState = &lt;span style="color: rgb(132, 130, 132);"&gt;"MD"&lt;/span&gt;;&lt;br /&gt;  Rates1.PackagingType = ptFedexEnvelope; //0&lt;br /&gt;  Rates1.Weight = "1";&lt;br /&gt;  Rates1.Value = "10.00"; &lt;span style="color: rgb(0, 130, 0);"&gt;//0&lt;/span&gt;&lt;br /&gt;  Rates1.ServiceType = stUnspecified; &lt;span style="color: rgb(0, 130, 0);"&gt;//0, show all service type rates&lt;/span&gt;&lt;br /&gt;  Rates1.GetRates();&lt;/pre&gt;
&lt;p&gt;Note that package weight is required for all packages, but it is only necessary to specify the dimensions of the package (length, width, and height - not shown in the example above) if you set the PackagingType to ptYourPackaging.  Note that ptYourPackaging is required for FedEx Ground services. &lt;/p&gt;
&lt;p&gt;Rates depend on location (from and destination), dimensions and/or weight, packaging type (envelope, box, etc), carrier code, and service type.   Available service types are: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Priority Overnight &lt;/li&gt;
    &lt;li&gt;Standard Overnight &lt;/li&gt;
    &lt;li&gt;First Overnight &lt;/li&gt;
    &lt;li&gt;FedEx 2 Day &lt;/li&gt;
    &lt;li&gt;FexEx Express Saver &lt;/li&gt;
    &lt;li&gt;International Priority &lt;/li&gt;
    &lt;li&gt;International Economy &lt;/li&gt;
    &lt;li&gt;International First &lt;/li&gt;
    &lt;li&gt;FedEx 1 Day Freight &lt;/li&gt;
    &lt;li&gt;FedEx 2 Day Freight &lt;/li&gt;
    &lt;li&gt;FedEx 3 Day Freight &lt;/li&gt;
    &lt;li&gt;FedEx Ground &lt;/li&gt;
    &lt;li&gt;Ground Home Delivery &lt;/li&gt;
    &lt;li&gt;International Priority Freight &lt;/li&gt;
    &lt;li&gt;International Economy Freight &lt;/li&gt;
    &lt;li&gt;Europe First International Priority &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The ServiceType property has an "unspecified" setting that will tell the component to retrieve rates for all available service types.  The CarrierCode property allows you to specify the carrier that will be used, either FDXE (FedEx Express, the default) or FDXG (FedEx Ground). &lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/Lance/WindowsLiveWriter/ShippingAPIsFedEx_C00E/FedExRates.jpg" atomicselection="true"&gt;&lt;img width="610" height="745" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/Lance/WindowsLiveWriter/ShippingAPIsFedEx_C00E/FedExRates_thumb.jpg" alt="Rates for shipping a 1 lb package from NC zip code 27714 to NY zip code 10001" style="border-width: 0px;" /&gt;&lt;/a&gt;  &lt;/p&gt;
&lt;p&gt;As you can see from the above screenshot of the Rates demo that comes with the FedEx Integrator .Net Edition, when the service type is unspecified, FedEx will return rate quotes for all applicable service types (overnight, 2 day, etc).   The delivery date, charges, discounts, and other details about the rate quotes are contained in a set of Service properties like ServiceDeliveryDate, ServiceDiscNetCharge, etc. &lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;2.  Print a shipping label for the package. &lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Use the Ship components to generate a shipping label for your package.  The component will generate labels in PDF, PNG, or thermals Elton, Zebra, and UniMark.  Choose the label image type through the LabelImageType property.  The Ship component can generate labels for all service types.&lt;/p&gt;
&lt;pre style="color: rgb(0, 0, 0);"&gt;  Ship1.AccountNumber = acctnum;  &lt;br /&gt;  Ship1.MeterNumber = meternum;&lt;br /&gt;  Ship1.ServerURL = &lt;span style="color: rgb(132, 130, 132);"&gt;"https://gatewaybeta.fedex.com:443/GatewayDC"&lt;/span&gt;;&lt;br /&gt;  Ship1.FromName = &lt;span style="color: rgb(132, 130, 132);"&gt;"John Smith"&lt;/span&gt;;&lt;br /&gt;  Ship1.FromAddress1 = &lt;span style="color: rgb(132, 130, 132);"&gt;"475 L'Enfant Plaza, SW"&lt;/span&gt;;&lt;br /&gt;  Ship1.FromCity = &lt;span style="color: rgb(132, 130, 132);"&gt;"Washington"&lt;/span&gt;;&lt;br /&gt;  Ship1.FromState = &lt;span style="color: rgb(132, 130, 132);"&gt;"DC"&lt;/span&gt;;&lt;br /&gt;  Ship1.FromPostalCode = &lt;span style="color: rgb(132, 130, 132);"&gt;"20260"&lt;/span&gt;;&lt;br /&gt;  Ship1.FromCountry = &lt;span style="color: rgb(132, 130, 132);"&gt;"US"&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;  Ship1.FromPhoneNumber = &lt;span style="color: rgb(132, 130, 132);"&gt;"1234567890"&lt;/span&gt;;&lt;br /&gt;  Ship1.ToName = &lt;span style="color: rgb(132, 130, 132);"&gt;"Jane Smith"&lt;/span&gt;;&lt;br /&gt;  Ship1.ToAddress1 = &lt;span style="color: rgb(132, 130, 132);"&gt;"8 Wildwood Drive"&lt;/span&gt;;&lt;br /&gt;  Ship1.ToCity = &lt;span style="color: rgb(132, 130, 132);"&gt;"Durham"&lt;/span&gt;;&lt;br /&gt;  Ship1.ToState = &lt;span style="color: rgb(132, 130, 132);"&gt;"NC"&lt;/span&gt;;&lt;br /&gt;  Ship1.ToPostalCode = &lt;span style="color: rgb(132, 130, 132);"&gt;"27712"&lt;/span&gt;;&lt;br /&gt;  Ship1.ToCountry = &lt;span style="color: rgb(132, 130, 132);"&gt;"US"&lt;/span&gt;;&lt;br /&gt;  Ship1.ToPhoneNumber = &lt;span style="color: rgb(132, 130, 132);"&gt;"1234567890"&lt;/span&gt;;&lt;br /&gt;  Ship1.Weight = 1;  &lt;span style="color: rgb(0, 130, 0);"&gt;//lbs&lt;br /&gt;&lt;/span&gt;  Ship1.CarrierCode = &lt;span style="color: rgb(132, 130, 132);"&gt;"FDXE"&lt;/span&gt;; &lt;span style="color: rgb(0, 130, 0);"&gt;//FedEx Express&lt;/span&gt;&lt;br /&gt;  Ship1.ServiceType = stStandardOvernight; &lt;span style="color: rgb(0, 130, 0);"&gt;//1, standard overnight&lt;/span&gt;&lt;br /&gt;  Ship1.DropoffType = dtRegularPickup; &lt;span style="color: rgb(0, 130, 0);"&gt;//0, regular pickup&lt;br /&gt;&lt;/span&gt;  Ship1.DropoffType = dtRegularPickup; &lt;span style="color: rgb(0, 130, 0);"&gt;//0, regular pickup&lt;br /&gt;&lt;/span&gt;  Ship1.LabelImageType = ltPNG; &lt;span style="color: rgb(0, 130, 0);"&gt;//1, PNG file&lt;/span&gt;&lt;br /&gt;  Ship1.ShippingLabelFile = &lt;span style="color: rgb(132, 130, 132);"&gt;"shippinglabel.png"&lt;/span&gt;;&lt;br /&gt;  Ship1.ShipPackage();&lt;br /&gt;&lt;span style="color: rgb(0, 130, 0);"&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="img/FedExShippingLabel.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/Lance/WindowsLiveWriter/ShippingAPIsFedEx_C00E/FedExShippingLabel.jpg" atomicselection="true"&gt;&lt;img width="514" height="480" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/Lance/WindowsLiveWriter/ShippingAPIsFedEx_C00E/FedExShippingLabel_thumb.jpg" alt="FedEx Shipping Label" style="border-width: 0px;" /&gt;&lt;/a&gt; &lt;br /&gt;
After the call to ShipPackage, you'll have a file called shippinglabel.png (depending on how you set the ShippingLabelFile and LabelImageType properties) that you can print, which looks something like the one pictured above.  Note that if you're using the test server, as in the example above, the label will always be the test label shown here ("TEST LABEL CONTACT", "TEST LABEL COMPANY", etc).  Affix this label to your package along with postage and it is ready to go.  &lt;/p&gt;
&lt;p&gt;Also the DeliveryDate and DeliveryDay (day of week) properties will be populated with the reply from FedEx indicating when the package will be delivered. &lt;/p&gt;
&lt;p&gt;The Ship component is extremely flexible and provides a wide variety of properties that can be set to effect the generated label itself.  For COD shipments, you can set the COD property to true and set the CODAmount and CODType with the details of the payment itself. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;FedEx Express Carrier&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;All of the ServiceTypes except FedEx Ground and FedEx Ground Home Delivery are for FedEx Express services. &lt;/p&gt;
&lt;p&gt;FedEx Express shipments are also eligible for FedEx Hold At Location services.  Use this option if you need your package to be held at a FedEx location instead of delivered to the final destination. This is useful if you need your package earlier than the scheduled delivery time, or if you won't be available to receive a delivery.  To turn on this option, set the HoldAtLocation property to true, and specify the location in the other HoldAt properties (HoldAtAddress, HoldAtCity, etc).  Locations can be searched for with the Locator component included in IBiz FedEx Integrator. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;FedEx Ground Carrier&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;The service types available for FedEx Ground are FedEx Ground and FedEx Ground Home Delivery. &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;End of Day Close&lt;br /&gt;
    If you're shipping through the FedEx Ground carrier (i.e., the CarrierCode property is set to "FDXG"), you should perform the FedEx Ground End of Day Close procedure at the end of every shipping day.  To perform this procedure, call the CloseOperation method. &lt;br /&gt;
    A printed Manifest report is required to be tendered along with your packages if they are being picked up by FedEx Ground. If you are dropping the packages off at a FedEx drop-off location, the manifest is not required.  After a call to the CloseOperation, the manifest report will be included in its unencoded form in the Manifest property, and also written to disk in the file specified by the ReportFile property. &lt;br /&gt;
    The CloseOperation can also be used to generate reports instead - to use the operation for this functionality, just set the ReportOnly property to true and set the ReportIndicator property to the type of reports you'd like to generate.  Then calling CloseOperation will cause FedEx to return the specified report (in either the Manifest, MultiweightReport, HazMatCertificate, or CODReport properties, depending on the value of ReportIndicator) for the past 3 days of shipping data.&lt;br /&gt;
    A customer cannot cancel any shipments once they are closed out. However, shipments can be added to a day's shipment after a close operation has been performed and multiple closes can be performed in a day. &lt;/li&gt;
    &lt;li&gt;FedEx Ground services also have the option of the FedEx Ground COLLECT service, explained in the Payment Options section below. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Shipping Payment Options&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;Payment options can be specified using the Ship component's Payor properties.  Specifically, the payment type is set with the PayorType property, which can take 1 of 4 possible values:&lt;strong&gt;&lt;br /&gt;
&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Sender - The default, using this option means that the account identified by the AccountNumber property will be billed for the shipping charges. &lt;/li&gt;
    &lt;li&gt;Recipient - The recipient of the package will be billed for the shipping charges.  To ship this way, you'll need to know the recipients account number and specify it in the PayorAccountNumber property, along with the PayorCountry. &lt;/li&gt;
    &lt;li&gt;Third Party - A third party will be billed for the shipping charges.  To ship this way, you'll need to know an account number and specify it in the PayorAccountNumber property, along with the PayorCountry. &lt;/li&gt;
    &lt;li&gt;FedEx Ground COLLECT - For FedEx Ground only, this service gives you the ability to be invoiced for incoming shipments, as opposed to paying the suppliers shipping charges.  To use this service, set the PayorType property to 3 (COLLECT).  Shipping charges will be billed to the account identified by the AccountNumber property. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;COD - Collect On Delivery&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;In order to ship COD (collect on delivery) packages, use the COD properties.  With COD, the recipient is paying for the product being shipped rather than the shipping itself.  To do this, first set the COD property to true, then set the CODType and CODAmount.  CODType can be CASH, GUARANTEED FUNDS (certified check, money order or cashier's check) or ANY (any of the previous plus company or personal checks). &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Signature Options&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;Signature options can be specified in the Ship component by setting the SignatureOption property.  The property has 4 possible values:&lt;strong&gt;&lt;br /&gt;
&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;No Signature - Only available for FedEx Express shipments that are not alcohol, hold at location, dangerous goods, and  have a declared value less than $500. &lt;/li&gt;
    &lt;li&gt;Indirect - A signature will be obtained from someone at the delivery address, a neighbor, or a door tag.  &lt;/li&gt;
    &lt;li&gt;Direct - A signature will be obtained from someone at the delivery address. &lt;/li&gt;
    &lt;li&gt;Adult - A signature will be obtained from someone at the delivery address who has a government issued photo id proving that they are at least 21 years of age. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;International Shipments&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;International shipments can either contain only documents, or can contain no documents at all.  For international shipments that are not documents, FedEx Express requires a Commercial Invoice document, commonly called a "CI", which you must print yourself.  The Ship component has a set of Commodity properties such as CommodityCount, CommodityDescription, CommodityWeight, etc.  You'll need to use these properties to build your ship request if you are shipping internationally, and FedEx will automatically forward this commodity information to customs.  Speaking of customs, you'll also need to set the TotalCustomsValue property to the total value of the shipment, including freight, insurance, and other charges.&lt;/p&gt;
&lt;p&gt;By default the IBiz FedEx Ship component assumes you are not shipping documents.  If you are shipping documents, you'll need to tell the component this by setting the Documents config setting to true (Ship1.Config("Documents=true")).&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Also required for dutiable shipment is the DutiesPayorType property.  This property should be set to indicate who will be paying the duty for the shipment - the sender, the recipient, or a third party. &lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;3.  Provide the customer with a shipment tracking number.&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;The Ship component that you use in step 3 will provide you with a tracking number automatically.  The component has a TrackingNumber property where this information is provided after the call to ShipPackage returns. &lt;/p&gt;
&lt;p&gt;With this tracking number you can use the Track component of IBiz FedEx Integrator to retrieve information about the status of the shipment.  Certainly as far as the customer is concerned, they can just be directed to visit the FedEx website and do their shipment tracking there.  But the Track component would be particularly useful to the merchant for automatically confirming delivery of all packages sent.  Here is an example:&lt;/p&gt;
&lt;pre style="color: rgb(0, 0, 0);"&gt;  &lt;span style="color: rgb(0, 130, 0);"&gt;//test server&lt;/span&gt;&lt;br /&gt;  Track1.ServerURL = &lt;span style="color: rgb(132, 130, 132);"&gt;"http://testing.shippingapis.com/ShippingAPITest.dll"&lt;/span&gt;;&lt;br /&gt;  Track1.DetailScans = true;  &lt;br /&gt;  Track1.TrackByTrackingNumber(&lt;span style="color: rgb(132, 130, 132);"&gt;"&amp;lt;insert tracking number&amp;gt;"&lt;/span&gt;);&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/Lance/WindowsLiveWriter/ShippingAPIsFedEx_C00E/FedExTrack.jpg" atomicselection="true"&gt;&lt;img width="667" height="627" border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/Lance/WindowsLiveWriter/ShippingAPIsFedEx_C00E/FedExTrack_thumb.jpg" alt="Track a FedEx Shipment" style="border-width: 0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h4&gt;&lt;strong&gt;4.  Give the Package to FedEx.&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;Now that the order process is complete, its time (hopefully) to actually ship the product to the customer.  The procedure for getting your package into the hands of FedEx depends on the value of the DropoffType property when you created the shipping label with the Ship component.  Possible options are: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Regular Pickup - The shipper already has an every-day pickup scheduled with a courier. &lt;/li&gt;
    &lt;li&gt;Request Courier - The shipper will call FedEx to ask for a courier. &lt;/li&gt;
    &lt;li&gt;Drop Box - The shipper will drop the package in a FedEx drop box.TBD &lt;/li&gt;
    &lt;li&gt;Business Service Center - The shipper will drop off the package at an authorized FedEx business service center. &lt;/li&gt;
    &lt;li&gt;Station  - The shipper will drop off the package at a FedEx Station. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can use the Locator component to search for FedEx Stations and FedEx authorized service centers in close proximity to your location.  All done, happy shipping! &lt;/p&gt;
&lt;h4&gt;Conclusions&lt;/h4&gt;
&lt;p&gt;This article demonstrates the ease of use of the &lt;a href="http://www.nsoftware.com/ibiz/fedex/default.aspx"&gt;IBiz FedEx Integrator&lt;/a&gt;.  In this tutorial I've gone over some of the most commonly used components and uses, however if there are any questions you have that I've not covered here please do not hesitate to contact me via the link at the top or bottom of this page. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt; &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;AccountNumber and MeterNumber properties are required for all FedEx transactions. &lt;/li&gt;
    &lt;li&gt;The test server URL for all requests is "https://gatewaybeta.fedex.com:443/GatewayDC". &lt;/li&gt;
    &lt;li&gt;The live production URL will be provided to you by FedEx after your application has been approved/certified by FedEx Web Integration Solutions team. &lt;/li&gt;
&lt;/ul&gt;
&lt;div style="margin: 0px; padding: 0px; display: inline;" contenteditable="false" id="0767317B-992E-4b12-91E0-4F059A8CECA8:493b39a2-3543-4547-8a70-5791992a39ff" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/FedEx" rel="tag"&gt;FedEx&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Shipping" rel="tag"&gt;Shipping&lt;/a&gt;, &lt;a href="http://technorati.com/tags/IBiz" rel="tag"&gt;IBiz&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114026"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=114026" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Lance/aggbug/114026.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lance Robinson</dc:creator>
            <guid>http://geekswithblogs.net/Lance/archive/2007/07/18/Shipping-APIs-FedEx.aspx</guid>
            <pubDate>Wed, 18 Jul 2007 17:49:13 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Lance/comments/114026.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Lance/archive/2007/07/18/Shipping-APIs-FedEx.aspx#feedback</comments>
            <slash:comments>8</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/Lance/comments/commentRss/114026.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Lance/services/trackbacks/114026.aspx</trackback:ping>
        </item>
        <item>
            <title>Shipping APIs - USPS and FedEx</title>
            <link>http://geekswithblogs.net/Lance/archive/2007/06/27/Shipping-APIs---USPS-and-FedExAgain.aspx</link>
            <description>&lt;p&gt;To complement the previous tutorials I've posted about &lt;a href="http://geekswithblogs.net/Lance/archive/2007/05/11/Adding-support-for-credit-cardpaypal-to-your-websiteapplication.aspx"&gt;how to add credit cards to your website or desktop applications&lt;/a&gt;, I will be posting a howto for how to add support for PayPal payments, and I'll also begin a series of howto's on how to automate and manage shipping through USPS, FedEx, and UPS. &lt;/p&gt;
&lt;p&gt;&lt;font color="#ff0000"&gt;Update&lt;/font&gt;:  &lt;a href="http://geekswithblogs.net/Lance/archive/2007/07/18/Shipping-APIs-FedEx.aspx"&gt;FedEx Tutorial here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I'll start with USPS because there are a lot of questions floating around lately about USPS rates since they have made wholesale changes there. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img height="300" alt="&amp;quot;In the Bag&amp;quot;, Smithsonian Magazine" hspace="50" width="189" align="right" vspace="50" src="http://www.smithsonianmagazine.com/images/articles/2006/nov/pop/mall_special.jpg" /&gt;Mail Yourself?&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;As I was writing this, I ran across this interesting article in Smithsonian Magazine about a &lt;a href="http://www.smithsonianmagazine.com/issues/2006/november/around_the_mall.php#2"&gt;2 year old boy who was mailed&lt;/a&gt; from Oklahoma to Kansas in 1914 for 18 cents!  :) &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Registration with USPS&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;No matter what API you use to communicate with the US Postal Service, you will need to register with them.  Online registration is free and provides developers with a unique username and password that must be used when accessing shipping services. To register for your free username and password, visit: &lt;a href="http://www.uspswebtools.com/registration/"&gt;http://www.uspswebtools.com/registration/&lt;/a&gt; . &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Connecting to USPS&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;After you register your account with USPS, you'll have access to their test servers, which support only "canned" tests, meaning that the test servers will only accept certain request data.  This test data is included in the IBiz USPS demos.  After you are ready to go live, you'll need to contact the &lt;a href="mailto:icustomercare@usps.com"&gt;USPS Internet Customer Care Center&lt;/a&gt; and request access to the live production server, where you'll be able to use real data input.  Note:  if you plan to use delivery/signature confirmation (ConfirmationLabels) or merchandise return service (ReturnLabels), you'll also need to contact the USPS National Customer Support Center ((800) 279-2651) to certify your actual printed labels, they will need to know you are an Internet customer using their Webtools services. &lt;/p&gt;
&lt;p&gt;For a list of test and live urls, see the section at the end of this tutorial entitled "A Note on Server URLs". &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The IBiz USPS Integrator toolkit&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.nsoftware.com/ibiz/usps/default.aspx"&gt;IBiz USPS Integrator&lt;/a&gt; is a tookit that enables software developers to quickly and easily incorporate USPS shipping capabilities into their software applications and websites.  The toolkit includes the following components: &lt;/p&gt;
&lt;p&gt;Shipping Label Generation: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;ConfirmationLabels&lt;/strong&gt; component, used to generate delivery or signature confirmation labels. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;CustomsLabels&lt;/strong&gt;, which generates the customs forms needed for international shipments where you have a pre-paid label (ie, aquired from Pitney-Bowes), when shipping surface (sea) mail, or when shipping to APO/FPO addresses.  Labels will be complete with addresses, barcodes, and customs declarations. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;InternationalLabels &lt;/strong&gt;(formerly the GlobalExpressLabels component), generates shipping labels and customs forms needed for international shipments via International Priority, Express, and First Class mail. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;ExpressLabels&lt;/strong&gt;, generates a USPS Express Mail shipping label and optionally a customer online record. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;ReturnLabels&lt;/strong&gt;, generates a printable electronic merchandise return label ("No postage necessary if mailed in the United States"). &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Rate Retrieval: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;DomesticRates&lt;/strong&gt; component, used to retrieve dimensional rate information that USPS started implementing in May 2007.  The component provides online automated access to rates based on weight, size, class, and origin/destination for Express Mail, First-Class Mail, and Priority Mail, as well as single-piece rates for package services Parcel Post, Bound Printed Matter, Library Mail, and Media Mail. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;InternationRates&lt;/strong&gt; component, used to retrieve rate information associated with the InternationalLabels component. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Shipment Delivery Estimation, Tracking, and Scheduling, and Address Verification: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;AddressInfo&lt;/strong&gt;, used to verify and standardize a customer address, lookup zip codes and city/states. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;CarrierPickup&lt;/strong&gt;, used to submit an electronic pickup request (a mail carrier will pickup your package at your door when s/he arrives for regular delivery). &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;ShippingTime&lt;/strong&gt; component, provides estimated shipping times between two zip codes. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;TrackAndConfirm&lt;/strong&gt;, checks delivery status of any package sent Express Mail, US Delivery or Signature confirmation mail, and all International shipments. &lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;Getting Started&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;Your typical online retailer needs to ship sold items to his customer, and this simple task involves several steps: &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Get the customer's shipping address, optionally verify it with USPS. &lt;/li&gt;
    &lt;li&gt;Allow the customer to choose what type of shipping to use, show the cost and delivery time of each choice. &lt;/li&gt;
    &lt;li&gt;Print a shipping label for the package. &lt;/li&gt;
    &lt;li&gt;Provide the customer with a shipment tracking number. &lt;/li&gt;
    &lt;li&gt;Schedule a mail carrier to pick up the package. &lt;/li&gt;
    &lt;li&gt;Give the package to the carrier. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Now here is how we can implement each of these tasks. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.  Get the customer's shipping address, optionally verify it with USPS. &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After you get the customers shipping address, you may choose to verify that address with USPS.  Address verification is not required, and most merchants do not need this feature.  If you want to implement address verification, doing so will require &lt;a href="http://www.usps.com/webtools/webtoolsapirequestform.htm"&gt;special permission from USPS&lt;/a&gt;, and USPS will have to specifically activate the address information feature on your account. &lt;/p&gt;
&lt;p&gt;The AddressInfo component allows you to verify a complete address (LookupAddress() method), lookup a zip code of a city/state(LookupZip() method), and lookup the city/state of a zip code (LookupCityState() method).  Here is an example of using the LookupAddress method to verify ("standardize") an address: &lt;/p&gt;
&lt;blockquote&gt;
&lt;pre style="COLOR: #000000"&gt;AddressInfo1.Server = &lt;span style="COLOR: #848284"&gt;"https://production.shippingapis.com/ShippingAPI.dll"&lt;/span&gt;; 
AddressInfo1.UserId = yourusername; 
AddressInfo1.Password = yourpassword; 
AddressInfo1.AddressLine2 = &lt;span style="COLOR: #848284"&gt;"6406 Ivy Lane"&lt;/span&gt;; 
AddressInfo1.City = &lt;span style="COLOR: #848284"&gt;"Greenbelt"&lt;/span&gt;; 
AddressInfo1.State = &lt;span style="COLOR: #848284"&gt;"MD"&lt;/span&gt;; 
AddressInfo1.LookupAddress(); &lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img height="300" alt="Verifying an address" width="257" src="http://www.textbox1.com/img/blog/AddressVerification1.png" /&gt;&lt;br /&gt;
&lt;img height="300" alt="Address Verified" src="http://www.textbox1.com/img/blog/AddressVerification2.png" /&gt; &lt;/p&gt;
&lt;p&gt;Here is the address I want to verify...&lt;br /&gt;
Now the address is verified and standardized. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.  Allow the customer to choose what type of shipping to use, show them the cost and estimated delivery time of each choice.&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;Now that you have a shipping address from the customer, you can retrieve the cost of delivery and an estimated time of delivery using the DomesticRates (or InternationalRates for international shipments) and ShippingTime components. &lt;/p&gt;
&lt;p&gt;To determine the postage rate to ship a regular sized package from my zip code (27502) to the sample address used in the earlier example (20770), I can use the following code: &lt;/p&gt;
&lt;blockquote&gt;
&lt;pre style="COLOR: #000000"&gt;DomesticRates1.Server = &lt;span style="COLOR: #848284"&gt;&lt;a href="http://production.shippingapis.com/ShippingAPI.dll"&gt;http://production.shippingapis.com/ShippingAPI.dll&lt;/a&gt;&lt;/span&gt;; 
DomesticRates1.UserId = username; 
DomesticRates1.Password = password; 
DomesticRates1.FromZipCode = &lt;span style="COLOR: #848284"&gt;"27502"&lt;/span&gt;; 
DomesticRates1.ToZipCode = &lt;span style="COLOR: #848284"&gt;"20770"&lt;/span&gt;; 
DomesticRates1.PackagePounds = &lt;span style="COLOR: #848284"&gt;"1"&lt;/span&gt;; 
DomesticRates1.PackageOunces = '4"; 
DomesticRates1.PackageSize = psRegular; &lt;span style="COLOR: #008200"&gt;//0 &lt;/span&gt;
DomesticRates1.ServiceType = svcAll; &lt;span style="COLOR: #008200"&gt;//7, show all service type costs &lt;/span&gt;
DomesticRates1.CalculatePostage();&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;Again, here I would use the InternationalRates component if I were shipping internationally.  Note the setting of the PackageSize and ServiceType properties.  Rates depend on location (from and to), size, weight, container (envelope, box, etc), and service type.  &lt;strong&gt;Available service types&lt;/strong&gt; are Priority Mail, First Class, Parcel Post, Bound Printed Matter, Media Mail, Library Mail, or Express Mail.  The ServiceType property has an "all" setting that will tell the component to retrieve rates for all available service types. &lt;/p&gt;
&lt;p&gt;Package sizes are defined by USPS as follows: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Regular, which is defined as:&lt;br /&gt;
    Priority Mail: less than one cubic foot in size&lt;br /&gt;
    All other service types: length plus girth is 84 inches or less &lt;/li&gt;
    &lt;li&gt;Large, which is defined as:&lt;br /&gt;
    Priority Mail: greater than one cubic foot in size&lt;br /&gt;
    All other service types: length plus girth is between 85 and 108 inches. &lt;/li&gt;
    &lt;li&gt;Oversize, which is defined as having a length plus girth of between 109-130 inches. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Rates for shipping a 1 lb, 4 oz package from 27502 to 20770" align="center" src="http://www.textbox1.com/img/blog/DomesticRates.png" /&gt; &lt;/p&gt;
&lt;p&gt;To compute the shipping time, use the ShippingTime component and simply provide the from zip, the destination zip, and the service type: &lt;/p&gt;
&lt;blockquote&gt;
&lt;pre style="COLOR: #000000"&gt;ShippingTime1.Server = &lt;span style="COLOR: #848284"&gt;"http://production.shippingapis.com/ShippingAPI.dll"&lt;/span&gt;; 
ShippingTime1.UserId = username; 
ShippingTime1.Password = password; 
ShippingTime1.ServiceType = stPriority; &lt;span style="COLOR: #008200"&gt;//0, priority mail &lt;/span&gt;
ShippingTime1.GetShippingTime(&lt;span style="COLOR: #848284"&gt;"27502"&lt;/span&gt;, &lt;span style="COLOR: #848284"&gt;"20770"&lt;/span&gt;);&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="Retrieving the Estimated Shipping Time..." src="http://www.textbox1.com/img/blog/ShippingTimeDemo.png" /&gt; &lt;img alt="The Resulting Ship Time Estimate" src="http://www.textbox1.com/img/blog/ShippingTimeResult.png" /&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.  Print a shipping label for the package. &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Use one of the Labels components to generate a shipping label for your package.  The components will generate labels in TIF, JPG, PDF, or GIF formats for your printing convenience.  The Labels components consist of: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;ExpressLabels - use this to generate shipping labels for Express Mail. &lt;/li&gt;
    &lt;li&gt;ConfirmationLabels - use this to generate shipping labels for other mail domestic service types. &lt;/li&gt;
    &lt;li&gt;CustomsLabels - use this to generate shipping labels for APO/FPO packages. &lt;/li&gt;
    &lt;li&gt;InternationalLabels - use this to generate shipping labels for international mail services. &lt;/li&gt;
    &lt;li&gt;ReturnLabels - use this to generate an electronic merchandise return label, for use by the customer to return packages to the merchant without postage. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For shipping inside the US, ExpressLabels and ConfirmationLabels are the most commonly used.  For this example I'll use the ConfirmationLabels component which can generate shipping labels for Priority Mail, First Class Mail, Parcel Post, Bound Printer Matter, Media Mail, and Library Mail. &lt;/p&gt;
&lt;blockquote&gt;
&lt;pre style="COLOR: #000000"&gt;ConfirmationLabels1.UserId = username; 
ConfirmationLabels1.Password = password; 
ConfirmationLabels1.Server = &lt;span style="COLOR: #848284"&gt;"https://secure.shippingapis.com/ShippingAPI.dll"&lt;/span&gt;; 
ConfirmationLabels1.Config (&lt;span style="COLOR: #848284"&gt;"Certify=true"&lt;/span&gt;); 
ConfirmationLabels1.FromName = &lt;span style="COLOR: #848284"&gt;"John Smith"&lt;/span&gt;; 
ConfirmationLabels1.FromAddress2 = &lt;span style="COLOR: #848284"&gt;"475 L'Enfant Plaza, SW"&lt;/span&gt;; 
ConfirmationLabels1.FromCity = &lt;span style="COLOR: #848284"&gt;"Washington"&lt;/span&gt;; 
ConfirmationLabels1.FromState = &lt;span style="COLOR: #848284"&gt;"DC"&lt;/span&gt;; 
ConfirmationLabels1.FromZipCode = &lt;span style="COLOR: #848284"&gt;"20260"&lt;/span&gt;; 
ConfirmationLabels1.ToName = &lt;span style="COLOR: #848284"&gt;"Jane Smith"&lt;/span&gt;; 
ConfirmationLabels1.ToAddress2 = &lt;span style="COLOR: #848284"&gt;"8 Wildwood Drive"&lt;/span&gt;; 
ConfirmationLabels1.ToCity = &lt;span style="COLOR: #848284"&gt;"Old Lyme"&lt;/span&gt;; 
ConfirmationLabels1.ToState = &lt;span style="COLOR: #848284"&gt;"CT"&lt;/span&gt;; 
ConfirmationLabels1.WeightInOunces = 2; 
ConfirmationLabels1.ServiceType = stPriority; &lt;span style="COLOR: #008200"&gt;//0, Priority Mail &lt;/span&gt;
ConfirmationLabels1.ImageType = stTif; &lt;span style="COLOR: #008200"&gt;//1, TIF file &lt;/span&gt;
ConfirmationLabels1.ShippingLabelFile = &lt;span style="COLOR: #848284"&gt;"delivery_confirm.tif"&lt;/span&gt;; 
ConfirmationLabels1.GetDeliveryConfirmationLabel(); 
&lt;span style="COLOR: #008200"&gt;//I could also use the GetSignatureConfirmationLabel() method to generate a &lt;/span&gt;
&lt;span style="COLOR: #008200"&gt;//label that will require a signature upon delivery&lt;/span&gt;
&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="http://www.textbox1.com/img/blog/deliveryconfirmtif.png"&gt;&lt;img height="300" alt="Shipping Label" width="348" align="right" border="0" src="http://www.textbox1.com/img/blog/deliveryconfirmtif.png" /&gt;&lt;/a&gt;After the call to GetDeliveryConfirmationLabel, you'll have a file called delivery_confirm.tif that you can print, that looks something like the one pictured at right.  Affix this label to your package along with postage and it is ready to go.  &lt;/p&gt;
&lt;p&gt;To see an example of a label generated by GetSignatureConfirmationLabel(), &lt;a href="http://www.textbox1.com/img/blog/signatureconfirmationtif.png"&gt;click here&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.textbox1.com/img/blog/deliveryconfirmtif.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4.  Provide the customer with a shipment tracking number.&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;The Labels component that you use in step 3 will provide you with a tracking number automatically.  The ConfirmationLabels, ExpressLabels, InternationalLabels, and ReturnLabels components all have a TrackingNumber property where this information is provided.  The CustomsLabels (which again should only be used for APO/FPO deliveries or pre-paid labels) component contains a BarcodeNumber property used for tracking. &lt;/p&gt;
&lt;p&gt;With this tracking number you can use the TrackAndConfirm component of IBiz USPS to retrieve information about the status of the shipment.  Certainly as far as the customer is concerned, they can just be directed to visit the USPS website and do their shipment tracking there.  But the TrackAndConfirm component would be particularly useful to the merchant for automatically confirming delivery of all packages sent.  Here is an example using the test server and a working test tracking number: &lt;/p&gt;
&lt;blockquote&gt;
&lt;pre style="COLOR: #000000"&gt;TrackAndConfirm1.Server = &lt;span style="COLOR: #848284"&gt;"http://testing.shippingapis.com/ShippingAPITest.dll"&lt;/span&gt;; &lt;span style="COLOR: #008200"&gt;//test server &lt;/span&gt;
TrackAndConfirm1.UserId = username; 
TrackAndConfirm1.Password = password; 
TrackAndConfirm1.GetDetailedTrackingInfo(&lt;span style="COLOR: #848284"&gt;"EJ958083578US"&lt;/span&gt;); 
&lt;span style="COLOR: #008200"&gt;//here I could also use the GetTrackingInfo() method, which gets a textual description &lt;/span&gt;

&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="Track and Confirm a Tracking Number" src="http://www.textbox1.com/img/blog/TrackAndConfirmDemo.png" /&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5.  Schedule a mail carrier to pick up the package.&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;Now that the order process is complete, its time (hopefully) to actually ship the product to the customer.  To do this, you can walk down to the post office with the package, or you can save yourself some time and automatically schedule a mail carrier to come and pick up the package from your door.  To do this, use the CarrierPickup component to submit the package details and schedule a pickup. &lt;/p&gt;
&lt;p&gt;First, check for the soonest available pickup date: &lt;/p&gt;
&lt;blockquote&gt;
&lt;pre style="COLOR: #000000"&gt;&lt;span style="COLOR: #008200"&gt;//This is the test server. Please note that the test requests are pre-scripted &lt;/span&gt;
&lt;span style="COLOR: #008200"&gt;//so modified requests may be rejected by the test server &lt;/span&gt;
CarrierPickup1.Server = &lt;span style="COLOR: #848284"&gt;"https://secure.shippingapis.com/ShippingAPITest.dll"&lt;/span&gt;; 
CarrierPickup1.UserId = username; 
CarrierPickup1.Password = password; 
CarrierPickup1.FirmName = &lt;span style="COLOR: #848284"&gt;"ABC Corp."&lt;/span&gt;; 
CarrierPickup1.SuiteOrApartment = &lt;span style="COLOR: #848284"&gt;"Suite 777"&lt;/span&gt;; 
CarrierPickup1.Address = &lt;span style="COLOR: #848284"&gt;"1390 Market Street"&lt;/span&gt;; 
CarrierPickup1.City = &lt;span style="COLOR: #848284"&gt;"Houston"&lt;/span&gt;; 
CarrierPickup1.State = &lt;span style="COLOR: #848284"&gt;"TX"&lt;/span&gt;; 
CarrierPickup1.ZipCode = &lt;span style="COLOR: #848284"&gt;"77058"&lt;/span&gt;; 
CarrierPickup1.Zip4 = &lt;span style="COLOR: #848284"&gt;"1234"&lt;/span&gt;; 
CarrierPickup1.PickupAvailability();&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;After calling the PickupAvailability method, the DayOfWeek and Date properties of the component will be populated with the date of the soonest available pickup date.  If carrier pickup services are not supported for the merchant address, you'll have to visit the post office in person. &lt;/p&gt;
&lt;p&gt;Now you can call the SchedulePickup method to go ahead and schedule a carrier pickup.  To do this, simply call the SchedulePickup() method.  You'll be required to first set some properties about the person requesting pickup and the package itself.  The example below will work with the test server (note: this is the USPS "canned" test data so if you change it the test will no longer work). &lt;/p&gt;
&lt;blockquote&gt;
&lt;pre style="COLOR: #000000"&gt;&lt;span style="COLOR: #008200"&gt;//This is the test server. Please note that the test requests are pre-scripted &lt;/span&gt;
&lt;span style="COLOR: #008200"&gt;//so modified requests may be rejected by the test server &lt;/span&gt;
CarrierPickup1.Server = &lt;span style="COLOR: #848284"&gt;"https://secure.shippingapis.com/ShippingAPITest.dll"&lt;/span&gt;; 
CarrierPickup1.UserId = username; 
CarrierPickup1.Password = password; 
CarrierPickup1.FirmName = &lt;span style="COLOR: #848284"&gt;"ABC Corp."&lt;/span&gt;; 
CarrierPickup1.SuiteOrApartment = &lt;span style="COLOR: #848284"&gt;"Suite 777"&lt;/span&gt;; 
CarrierPickup1.Address = &lt;span style="COLOR: #848284"&gt;"1390 Market Street"&lt;/span&gt;; 
CarrierPickup1.City = &lt;span style="COLOR: #848284"&gt;"Houston"&lt;/span&gt;; 
CarrierPickup1.State = &lt;span style="COLOR: #848284"&gt;"TX"&lt;/span&gt;; 
CarrierPickup1.ZipCode = &lt;span style="COLOR: #848284"&gt;"77058"&lt;/span&gt;; 
CarrierPickup1.Zip4 = &lt;span style="COLOR: #848284"&gt;"1234"&lt;/span&gt;; 
CarrierPickup1.FirstName = &lt;span style="COLOR: #848284"&gt;"John"&lt;/span&gt;; 
CarrierPickup1.LastName = &lt;span style="COLOR: #848284"&gt;"Doe"&lt;/span&gt;; 
CarrierPickup1.PhoneNumber = &lt;span style="COLOR: #848284"&gt;"(555) 555-1234"&lt;/span&gt;; 
CarrierPickup1.PhoneExtension = &lt;span style="COLOR: #848284"&gt;"201"&lt;/span&gt;; 
CarrierPickup1.CountExpress = 1; &lt;span style="COLOR: #008200"&gt;//the number of packages being picked up for Express Mail &lt;/span&gt;
CarrierPickup1.CountPriority = 1; &lt;span style="COLOR: #008200"&gt;//the number of packages being picked up for Priority Mail &lt;/span&gt;
CarrierPickup1.CountInternational = 1; &lt;span style="COLOR: #008200"&gt;//the number of packages being picked up for International Mail &lt;/span&gt;
CarrierPickup1.CountOther = 1; &lt;span style="COLOR: #008200"&gt;//other packages &lt;/span&gt;
CarrierPickup1.EstimatedWeight = &lt;span style="COLOR: #848284"&gt;"14"&lt;/span&gt;; &lt;span style="COLOR: #008200"&gt;//pounds &lt;/span&gt;
CarrierPickup1.PackageLocation = plOther; &lt;span style="COLOR: #008200"&gt;//9, other &lt;/span&gt;
CarrierPickup1.SpecialInstructions = &lt;span style="COLOR: #848284"&gt;"Packages are behind the screen door."&lt;/span&gt;; 
CarrierPickup1.SchedulePickup();
&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;In the above, all of the data is required as specified in order to work with the test server.  Once you have a live account and are ready to schedule a real pickup, change the Server URL to the production URL and specify only those properties that are required or that you need.  For a list of required pickup scheduling properties please see the IBiz USPS documentation of the SchedulePickup method. &lt;/p&gt;
&lt;p&gt;The CarrierPickup component also gives you the means to inquire as to the status of a pickup, change a previously scheduled pickup, or cancel a previously scheduled pickup. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6.  Give the package to the carrier. &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is the easy part and requires no explanation.  All done, happy shipping! &lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;A Note on Server URLs:&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;AddressInfo, ShippingTime, TrackandConfirm, and the Rates component use the following servers:&lt;br /&gt;
&lt;em&gt;live&lt;/em&gt;: &lt;a href="http://production.shippingapis.com/ShippingAPI.dll"&gt;http://production.shippingapis.com/ShippingAPI.dll&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;CarrierPickup&lt;br /&gt;
&lt;em&gt;live&lt;/em&gt;: &lt;a href="https://secure.shippingapis.com/ShippingAPI.dll"&gt;https://secure.shippingapis.com/ShippingAPI.dll&lt;/a&gt;&lt;br /&gt;
&lt;em&gt;test&lt;/em&gt;: &lt;a href="https://secure.shippingapis.com/ShippingAPI.dll"&gt;https://secure.shippingapis.com/ShippingAPITest.dll&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;All of the Labels components use the following servers:&lt;br /&gt;
&lt;em&gt;live&lt;/em&gt;: &lt;a href="https://secure.shippingapis.com/ShippingAPI.dll"&gt;https://secure.shippingapis.com/ShippingAPI.dll&lt;/a&gt;&lt;br /&gt;
&lt;em&gt;test&lt;/em&gt;: same url, but with a special "test mode" flag.  You can set this test mode flag using the IBiz USPS Integrator using the config setting "Certify=True" (ie, DomesticRates1.Config("Certify=True");). &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:c5e10ba0-b188-4d07-a41b-5dc75861743a" contenteditable="false" style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/USPS"&gt;USPS&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Shipping"&gt;Shipping&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/IBiz"&gt;IBiz&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/Ratev3"&gt;Ratev3&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113502"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113502" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Lance/aggbug/113502.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lance Robinson</dc:creator>
            <guid>http://geekswithblogs.net/Lance/archive/2007/06/27/Shipping-APIs---USPS-and-FedExAgain.aspx</guid>
            <pubDate>Wed, 27 Jun 2007 16:45:19 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Lance/comments/113502.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Lance/archive/2007/06/27/Shipping-APIs---USPS-and-FedExAgain.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/Lance/comments/commentRss/113502.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Lance/services/trackbacks/113502.aspx</trackback:ping>
        </item>
        <item>
            <title>E-Banking API - OFX</title>
            <link>http://geekswithblogs.net/Lance/archive/2007/06/27/E-Banking-API---OFXAgain.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://www.digitalsanctum.com/2007/06/06/ofx-open-financial-exchange/"&gt;Shane Witbeck&lt;/a&gt; has found a new interest:  OFX: &lt;/p&gt;&lt;blockquote&gt; &lt;p&gt;&lt;em&gt;I started looking into OFX because there seems to be a need for a good personal finance application for Mac OS X and the one feature missing from existing apps is live connectivity to banks.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Shane is already linking to /n software's &lt;a href="http://www.nsoftware.com/ibiz/?geekswithblogs"&gt;IBiz&lt;/a&gt; OFX Integrator, which has just been updated and re-released as &lt;a href="http://www.nsoftware.com/ibiz/ofx/technologies.aspx"&gt;IBiz E-Banking Integrator&lt;/a&gt;.  The new E-Banking Integrator includes new components for bill payment, account discovery, and funds transfer &lt;/p&gt;&lt;p&gt;I can answer a few of Shane's OFX related questions: &lt;/p&gt;&lt;blockquote&gt; &lt;p&gt;&lt;em&gt;After Googling and doing further research, I’ve found that some banks actually charge a fee for connecting to an account via OFX. Some banks simply don’t offer OFX and instead narrow their focus on more prevalent formats such as Quicken, QuickBooks, and Microsoft Money.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;It's true that some banks charge for OFX access.  For many banks, if you have access to their regular online banking services, you also have access to OFX services (provided you can find the connection details - Shane has pointed to a great resource for this - &lt;a href="http://ofxblog.wordpress.com/"&gt;the OFX Blog&lt;/a&gt;).  Some banks require you to pay extra fees in order for your account details to be accessible via OFX.  Sometimes login to OFX services is the same as login to the regular online banking pages, but not always.  I notice that the OFX Blog makes notes of this, for example, in &lt;a href="http://ofxblog.wordpress.com/?s=%22Bank+of+America%22"&gt;these listings for Bank of America&lt;/a&gt; it states that BoA enrollment for web services automatically enrolls you for OFX services, and that the password used for web services is also used for OFX services. &lt;/p&gt;&lt;blockquote&gt; &lt;p&gt;&lt;em&gt;It seems as though OFX never really was adopted as a standard format or at least by most of the major banks. OFX connection information is very difficult to track down and most of the information I’ve found is vague. I suppose this explains why there are only a few major players in the market of personal finance desktop applications that can offer the crucial feature of being able to download live transactions.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;OFX has definitely been adopted as the standard format for all of the major banks &lt;em&gt;in the US&lt;/em&gt;.  Bank of America, JPMorgan Chase, Wachovia, Wells Fargo, , Citibank, SunTrust, etc - all support OFX services.  Any bank that you can communicate with live using Microsoft Money, Quicken, or QuickBooks is communiating via OFX. &lt;/p&gt;&lt;p&gt;As for the "OFX information" - this used to be very difficult to come by (now there is &lt;a href="http://ofxblog.wordpress.com/"&gt;the OFX Blog&lt;/a&gt;, and &lt;a href="http://www.jongsma.org/gc/"&gt;Jeremy Jongsma&lt;/a&gt;'s data files).  If you call up customer service for your bank and say "OFX" to the person on the other end they won't have any clue what you're talking about.  The banks give this information to the major players, and then you get letters from your bank every so often stating that they'll no longer be supporting version X of such and such application.  You form you own conclusions there.  :)&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:a91be581-a2fd-4f3b-a8ff-5dc6d15f7a85" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/OFX" rel="tag"&gt;OFX&lt;/a&gt;, &lt;a href="http://technorati.com/tags/IBiz" rel="tag"&gt;IBiz&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113501"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113501" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Lance/aggbug/113501.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lance Robinson</dc:creator>
            <guid>http://geekswithblogs.net/Lance/archive/2007/06/27/E-Banking-API---OFXAgain.aspx</guid>
            <pubDate>Wed, 27 Jun 2007 16:43:36 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Lance/comments/113501.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Lance/archive/2007/06/27/E-Banking-API---OFXAgain.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Lance/comments/commentRss/113501.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Lance/services/trackbacks/113501.aspx</trackback:ping>
        </item>
        <item>
            <title>Adding support for credit card/paypal to your website/application</title>
            <link>http://geekswithblogs.net/Lance/archive/2007/05/11/Adding-support-for-credit-cardpaypal-to-your-websiteapplication.aspx</link>
            <description>&lt;p&gt;In the latest installment of MSDN Magazine "Toolbox", Scott Mitchell wrote a few paragraphs about how a developer can add to his applications/websites the ability to &lt;a href="http://msdn.microsoft.com/msdnmag/issues/07/06/Toolbox/#S2"&gt;accept online credit card payments&lt;/a&gt;. The process does seem complex and a bit intimidating at first, but with the right tools it can be pretty easy.&lt;/p&gt;
&lt;p&gt;Scott points his readers to Authorize.Net (Internet payment gateway through which one can process the charges), and also mentions the availability of some third-party shopping cart products that support Authorize.Net. He did not mention any specifically, but one such product is &lt;a title="IBiz" href="http://www.nsoftware.com/ibiz/?geekswithblogs"&gt;IBiz&lt;/a&gt; E-Payment Integrator, which supports not only Authorize.Net, but also over 40 other Internet payment gateways, all through the same API so that if you ever need to switch gateways you don't have to re-write all your code (this product is also available for other development environments besides Visual Studio).&lt;/p&gt;
&lt;p&gt;You can find more information about how to get started accepting credit card payments on your website or in your application in &lt;a href="http://www.nsoftware.com/kb/tutorials/epayment.aspx"&gt;this IBiz E-Payment Integrator tutorial&lt;/a&gt;, which also mentions how you can by pass Internet payment gateways altogether and communication directly with the processor. And if you want to be able to accept PayPal as well, look no further than &lt;a href="http://www.nsoftware.com/ibiz/paypal/default.aspx"&gt;the IBiz PayPal Integrator&lt;/a&gt;.&lt;/p&gt;
&lt;p class="zoundry_bw_tags"&gt;&lt;!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --&gt;&lt;span class="ztags"&gt;&lt;span class="ztagspace"&gt;Technorati&lt;/span&gt; : &lt;a class="ztag" rel="tag" href="http://technorati.com/tag/Authorize.Net"&gt;Authorize.Net&lt;/a&gt;, &lt;a class="ztag" rel="tag" href="http://technorati.com/tag/IBiz"&gt;IBiz&lt;/a&gt;, &lt;a class="ztag" rel="tag" href="http://technorati.com/tag/PayPal"&gt;PayPal&lt;/a&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112419"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=112419" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Lance/aggbug/112419.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lance Robinson</dc:creator>
            <guid>http://geekswithblogs.net/Lance/archive/2007/05/11/Adding-support-for-credit-cardpaypal-to-your-websiteapplication.aspx</guid>
            <pubDate>Fri, 11 May 2007 16:55:11 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Lance/comments/112419.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Lance/archive/2007/05/11/Adding-support-for-credit-cardpaypal-to-your-websiteapplication.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Lance/comments/commentRss/112419.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Lance/services/trackbacks/112419.aspx</trackback:ping>
        </item>
    </channel>
</rss>