Method PostMasterAccount

Summary

Master Account

Remarks

If PostAccountSearch on the taxID returns MasterRecord=Y, then call this method to retrieve a list of tax accounts for the master record.

Input Parameters

NameTypeLengthDescription
masterID numeric 9 [Required] Master Tax Account ID
priorNext System.String 1 Search for Prior/Next record. N=Next, P=Prior. Defaults to N=Next
rows numeric 4 Number of rows to return. Used for paging. Defaults to 9999 to return all rows
first numeric 9 First tax ID. Used for paging.
last numeric 9 Last tax ID. Used for paging.
rollCodes System.String 40 Roll Codes

Example

POST http://localhost/FusionServices/v3/Naviline/Tax/MasterAccount

Return Values

NameDescription
TAXIDA Tax ID of account owned by the master account
OWNERNM Owner name
PENDBAL Pending Balance Amount
ACCTBAL Account Balance Amount
CURRDUE Current Due Amount
MasterID Master Tax ID that was searched for
FirstName First Tax ID returned. Pass this in as last, to continue paging through Previous records
LastName Last Tax ID returned. Pass this in as first, to continue paging through Next records
MasterOwnerName Master Tax account owner name
MasterPending Total Pending Amount on master account
MasterBalance Total Balance Amount on master account
MasterDue Total Due Amount on master account
Rows Number of rows returned
More?YN More records Y/N
ErrorCode 0000 if successful
ErrorMessage details of any error that occurred

Sample Responses

Sample Code

using System.Net;
using Newtonsoft.Json.Linq;

public void MethodName(parms)
{
   string uri = "http://localhost/FusionServices/v3/Naviline/Tax/MasterAccount";
   System.Collections.Specialized.NameValueCollection postParms = 
     new System.Collections.Specialized.NameValueCollection(); 
   // Set paramater values
   postParms.Add("masterID",System.Web.HttpUtility.UrlEncode("7845303"));

   WebClient req = new WebClient();
   wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
   wc.Headers.Set("X-APPID", "YOURID");
   wc.Headers.Set("X-APPKEY", "YOURKEY");

   byte[] responseBytes = wc.UploadValues(new Uri(uri), "POST", postParms);
   string stringResult = Encoding.UTF8.GetString(responseBytes); 
   JObject response = JObject.Parse(stringResult);
   string error = response["OutputParms"]["ErrorCode"].ToString();
   if (error == "0000")
   {
        JArray jRows = (JArray)response["Rows"];
        foreach (JObject row in jRows)
        {
             string TAXIDA = row["TAXIDA"].ToString();
             string OWNERNM = row["OWNERNM"].ToString();
             string PENDBAL = row["PENDBAL"].ToString();
             string ACCTBAL = row["ACCTBAL"].ToString();
             string CURRDUE = row["CURRDUE"].ToString();
             // TODO - YOUR CODE HERE
        }
   }
}

C# Razor MVC Sample Code

using System;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Collections.Specialized;
using FusionServiceHelper.Models;

// NOTE: Use the namespace generated when you add the class, so that it is correct.
namespace FusionRazor.Models
{
   public class PostMasterAccount
   {
       // Add property for each input param in order to map a field to it
       [Required(ErrorMessage = "Required")]
       [RegularExpression("[0-9]{0,9}", ErrorMessage = "Numeric values only. Must be 9 digits or less. ")]
       public string masterID{get; set;}

       [RegularExpression("^(?=.{0,1}$).*", ErrorMessage = "Must be 1 characters or less. ")]
       public string priorNext{get; set;}

       [RegularExpression("[0-9]{0,4}", ErrorMessage = "Numeric values only. Must be 4 digits or less. ")]
       public string rows{get; set;}

       [RegularExpression("[0-9]{0,9}", ErrorMessage = "Numeric values only. Must be 9 digits or less. ")]
       public string first{get; set;}

       [RegularExpression("[0-9]{0,9}", ErrorMessage = "Numeric values only. Must be 9 digits or less. ")]
       public string last{get; set;}

       [RegularExpression("^(?=.{0,40}$).*", ErrorMessage = "Must be 40 characters or less. ")]
       public string rollCodes{get; set;}

       public PostMasterAccount()
       {
           //Set any defaults here
       }
   }
}
@* NOTE: Use Add->View to add the View. *@
@* NOTE: Check the 'Create strongly-typed view checkbox, and select the PostMasterAccount class. *@
@* NOTE: Select Edit as the Scaffold template. *@
@* NOTE: Use the @model line that is generated at the top.  Replace the rest with the lines below.
@model FusionRazor.Models.PostMasterAccount

@{
   ViewBag.Title = "PostMasterAccount";
}

<h2>PostMasterAccount</h2>
@using (Html.BeginForm()) {
   @Html.AntiForgeryToken()
   @Html.ValidationSummary(true)
   <fieldset>
   <legend>PostMasterAccount</legend>
       <div class="editor-label">
           @Html.LabelFor(model => model.masterID)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.masterID)
           @Html.ValidationMessageFor(model => model.masterID)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.priorNext)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.priorNext)
           @Html.ValidationMessageFor(model => model.priorNext)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.rows)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.rows)
           @Html.ValidationMessageFor(model => model.rows)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.first)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.first)
           @Html.ValidationMessageFor(model => model.first)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.last)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.last)
           @Html.ValidationMessageFor(model => model.last)
       </div>
       <div class="editor-label">
           @Html.LabelFor(model => model.rollCodes)
       </div>
       <div class="editor-field">
           @Html.EditorFor(model => model.rollCodes)
           @Html.ValidationMessageFor(model => model.rollCodes)
       </div>
       <p>
       <input type="submit" value="Submit"/>
       </p>
   </fieldset>

}

@section Scripts {
   @Scripts.Render("~/bundles/jqueryval")
}
using System;
using System.Collections.Specialized;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using FusionServiceHelper.Models;

// NOTE: Replace 'MyController' with the name of your controller.

// 
// GET: /MyController/PostMasterAccount
public ActionResult PostMasterAccount()
{
   // Create a new instance of the model to pick up any default values.
   PostMasterAccount model =  new PostMasterAccount();

   // pass model to set to default values
   // NOTE: Change 'MyFolderPath' to the path to the .cshtml file.
   return View("~/Views/MyFolderPath/PostMasterAccount.cshtml", model);
}

// 
// POST: /MyController/PostMasterAccount
[HttpPost]
public ActionResult PostMasterAccount(FormCollection collection)
{
   string url = "v3/Naviline/Tax/MasterAccount";
   // Get the value from each input field
   NameValueCollection inputParms = new NameValueCollection();
   inputParms.Add("masterID", collection["masterID"]);
   inputParms.Add("priorNext", collection["priorNext"]);
   inputParms.Add("rows", collection["rows"]);
   inputParms.Add("first", collection["first"]);
   inputParms.Add("last", collection["last"]);
   inputParms.Add("rollCodes", collection["rollCodes"]);

   try
   {
       // Send the request
       FusionServiceRequest request = new FusionServiceRequest();
       FusionServiceResult result = request.Post(url, inputParms);

       return View("Result", result);
   }
   catch(Exception e)
   {
       HandleErrorInfo info = new HandleErrorInfo(e, "MyController", "PostMasterAccount");
       return View("Error", info);
   }
}