Organization Registration v3.0
SOAP Service for provisioning, adding MaxMD Direct Hosted addresses for provider. This page includes description about service actions and data types.
Organization Registration Service Functions
On-board instruction
To onboard a Direct organization through the Registration API, the Organization and each staff must be verified through MaxMD ID Proofing (Verification) API or ID Proofing (Verification) web-based workflow. The ID Proofing (Verification) API document can be found at: SOAP or REST. If you are interested in MaxMD ID Proofing (Verification) web-based workflow, please contact MaxMD support support@max.md
When an organization is verified, a unique numeric identifier “certified_id” will be assigned to the organization. When a staff (individual) is verified, a unique numeric identifier “idp_id” will be assigned to the ID Proofed individual. These Ids (certified_id and idp_id) are required when provision the Direct domain and Direct address for the organization and the individual.
- sessionId (use Login function to authenticate and get a session Id in response)
- DirectDomain (the Direct domain name)
- DirectOfferType (Offer type based on the number of employees)
-
form:
- organization: provide certified_id (or provide name, taxid and state)
- organizationType: certificate type (CoveredEntity, BusinessAssociate or HealthEntity)
- directAddresses: Direct addresses. In each Direct address object:
- idp_id (ID Proofed Individual unique Id)
- username: username of the Direct address
- password: password of the Direct address
- userType: SMTP
- sessionId (use Login function to authenticate and get a session Id in response)
- DirectDomain (the Direct domain name)
-
form:
- directAddresses: additional Direct addresses. In each Direct address object:
- idp_id (ID Proofed Individual unique Id)
- username: username of the Direct address
- password: password of the Direct address
- userType: SMTP
- directAddresses: additional Direct addresses. In each Direct address object:
- sessionId (use Login function to authenticate and get a session Id in response)
- DirectDomain (the Direct domain name)
-
form:
- authorizedUsers: authorized users. In each authorized user object:
- idp_id (ID Proofed Individual unique Id)
- authorizedUsers: authorized users. In each authorized user object:
- sessionId (use Login function to authenticate and get a session Id in response)
- DirectDomain (the Direct domain name)
-
form:
- directAddresses: Direct addresses to be updated. In each Direct address object:
- username: username of the Direct address
- password: password of the Direct address
- directAddresses: Direct addresses to be updated. In each Direct address object:
To get your created Direct Domains (organizations), call function: ListProvisionedOrganizations
To get information (authorized users, Direct address etc) about an existing Direct Domain (organization), call function: CheckProvisionedOrganizationWithOtherInfo
API Functions
LoginResponseType Login (String username, String password)
Login using your Reseller or T-User username and password, and received a new sessionId in response. Each sessionId will expire in 10 minutes.
SubmitDirectFormResponseType ProvisionCertifiedProvider (String sessionId, String DirectDomain, String DirectOfferType, CertifiedDirectForm form)
Provision a certified organization with specified offer type. Below are all valid offer types:
- CDO1 - Direct Secure Messaging: Hosted mdEmail® for 1 Clinical Staff Employee
- CDO2 - Direct Secure Messaging: Hosted mdEmail® for 2 Clinical Staff Employees
- CDO3 - Direct Secure Messaging: Hosted mdEmail® for 3 Clinical Staff Employees
- CDO4 - Direct Secure Messaging: Hosted mdEmail® for 4 Clinical Staff Employees
- CDO5 - Direct Secure Messaging: Hosted mdEmail® for 5 Clinical Staff Employees
- CDO6 - Direct Secure Messaging: Hosted mdEmail® for 6 Clinical Staff Employees
- CDO7 - Direct Secure Messaging: Hosted mdEmail® for 7 Clinical Staff Employees
- CDO8 - Direct Secure Messaging: Hosted mdEmail® for 8 Clinical Staff Employees
- CDO9 - Direct Secure Messaging: Hosted mdEmail® for 9 Clinical Staff Employees
- CDO10 - Direct Secure Messaging: Hosted mdEmail® for 10 Clinical Staff Employees
- CDO15 - Direct Secure Messaging: Hosted mdEmail® for 11-15 Clinical Staff Employees
- CDO20 - Direct Secure Messaging: Hosted mdEmail® for 16-20 Clinical Staff Employees
- CDO30 - Direct Secure Messaging: Hosted mdEmail® for 21-30 Clinical Staff Employees
- CDO40 - Direct Secure Messaging: Hosted mdEmail® for 31-40 Clinical Staff Employees
- CDO50 - Direct Secure Messaging: Hosted mdEmail® for 41-50 Clinical Staff Employees
- CDO75 - Direct Secure Messaging: Hosted mdEmail® for 51-75 Clinical Staff Employees
- CDO100 - Direct Secure Messaging: Hosted mdEmail® for 76-100 Clinical Staff Employees
- CDO150 - Direct Secure Messaging: Hosted mdEmail® for 101-150 Clinical Staff Employees
- CDO300 - Direct Secure Messaging: Hosted mdEmail® for 151-300/51-101 Clinical Staff Employees/Beds
- CDO450 - Direct Secure Messaging: Hosted mdEmail® for 301-450/101-150 Clinical Staff Employees/Beds
- CDO600 - Direct Secure Messaging: Hosted mdEmail® for 451-600/151-200 Clinical Staff Employees/Beds
- CDO750 - Direct Secure Messaging: Hosted mdEmail® for 601-750/201-250 Clinical Staff Employees/Beds
- CDONLP1 - Direct Secure Messaging: Hosted mdEmail® with NLP for 1 Clinical Staff Employee
- CDONLP2 - Direct Secure Messaging: Hosted mdEmail® with NLP for 2 Clinical Staff Employees
- CDONLP3 - Direct Secure Messaging: Hosted mdEmail® with NLP for 3 Clinical Staff Employees
- CDONLP4 - Direct Secure Messaging: Hosted mdEmail® with NLP for 4 Clinical Staff Employees
- CDONLP5 - Direct Secure Messaging: Hosted mdEmail® with NLP for 5 Clinical Staff Employees
- CDONLP6 - Direct Secure Messaging: Hosted mdEmail® with NLP for 6 Clinical Staff Employees
- CDONLP7 - Direct Secure Messaging: Hosted mdEmail® with NLP for 7 Clinical Staff Employees
- CDONLP8 - Direct Secure Messaging: Hosted mdEmail® with NLP for 8 Clinical Staff Employees
- CDONLP9 - Direct Secure Messaging: Hosted mdEmail® with NLP for 9 Clinical Staff Employees
- CDONLP10 - Direct Secure Messaging: Hosted mdEmail® with NLP for 10 Clinical Staff Employees
- CDONLP15 - Direct Secure Messaging: Hosted mdEmail® with NLP for 11-15 Clinical Staff Employees
- CDONLP20 - Direct Secure Messaging: Hosted mdEmail® with NLP for 16-20 Clinical Staff Employees
- CDONLP30 - Direct Secure Messaging: Hosted mdEmail® with NLP for 21-30 Clinical Staff Employees
- CDONLP40 - Direct Secure Messaging: Hosted mdEmail® with NLP for 31-40 Clinical Staff Employees
- CDONLP50 - Direct Secure Messaging: Hosted mdEmail® with NLP for 41-50 Clinical Staff Employees
- CDONLP75 - Direct Secure Messaging: Hosted mdEmail® with NLP for 51-75 Clinical Staff Employees
- CDONLP100 - Direct Secure Messaging: Hosted mdEmail® with NLP for 76-100 Clinical Staff Employees
- CDONLP150 - Direct Secure Messaging: Hosted mdEmail® with NLP for 101-150 Clinical Staff Employees
- CDONLP300 - Direct Secure Messaging: Hosted mdEmail® with NLP for 151-300/51-100 Clinical Staff Employee/Beds
- CDONLP450 - Direct Secure Messaging: Hosted mdEmail® with NLP for 301-450/101-150 Clinical Staff Employee/Beds
- CDONLP600 - Direct Secure Messaging: Hosted mdEmail® with NLP for 451-600/151-200 Clinical Staff Employee/Beds
- CDONLP750 - Direct Secure Messaging: Hosted mdEmail® with NLP for 601-750/201-250 Clinical Staff Employee/Beds
SubmitDirectFormResponseType AddAuthorizedUsersToCertifiedProvider (String sessionId, String DirectDomain, CertifiedDirectForm form)
Register Identity Proofed individuals to a provisioned organization as authorized users.
SubmitDirectFormResponseType AddDirectAddressesToCertifiedProvider (String sessionId, String DirectDomain, CertifiedDirectForm form)
Create Direct addresses to a provisioned organization.
SubmitDirectFormResponseType UpdateDirectAddressPassword (String sessionId, String DirectDomain, CertifiedDirectForm form)
Create Direct addresses to a provisioned organization.
GetProvisionedOrganizationsResponseType ListProvisionedOrganizations (String sessionId, boolean minimumMetadata)
List provisioned organization.
GetProvisionedOrganizationsResponseType
CheckProvisionedOrganization
(String sessionId, String directDomain,
boolean getAuthorizedUsers,
boolean getAddresses
boolean getDefaultSettings)
Get information of a provision organization.
GetProvisionedOrganizationsWithOtherInfoResponseType
CheckProvisionedOrganizationWithOtherInfo
(String sessionId, String directDomain,
boolean getAuthorizedUsers,
boolean getAddresses
boolean getDefaultSettings)
Get information of a provision organization.
GetMessageStatusReportResponseType
GetMonthlyDirectMessageReport
(String sessionId, String organizationFqdn,
Date date,
boolean getReportAsCsv)
Get Monthly message status report.
GetMessageStatusReportResponseType
GetWeeklyDirectMessageReport
(String sessionId, String organizationFqdn,
Date date,
boolean getReportAsCsv)
Get Weekly message status report.
GetMessageStatusReportResponseType
GetDailyDirectMessageReport
(String sessionId, String organizationFqdn,
Date date,
boolean getReportAsCsv)
Get Daily message status report.
Organization Registration Service Data types
ResellerAPIResponse
Parameter | Description | |
---|---|---|
String code | Response code: 000 - success 002 - invalid user when provisioning new Direct mdEmail account 003 - registrar offer error 010 - invalid api argument or argument missing 011 - authentication failed 012 - organization missing 013 - organization permission denied 014 - direct user account error 021 - debit account authorize failed 022 - debit account capture failed 099 - other error 201 - Direct domain $domain has been used. 202 - No verified organization record is found $info 203 - The organization is not verified as healthcare provider. $info 204 - Invalid state name $info 205 - Failed to validate ID proofed individuals $info 206 - Invalid organization type $info 207 - Unsupported address type $info 208 - No organization is found for domain($domain). 209 - Direct Organization object is empty $info 210 - Direct addresso ($address) is not found. 999 - other error |
Required |
Boolean success | Required | |
String errorMessage | Error message |
LoginResponseType ( extends ResellerAPIResponse )
Parameter | Description | |
---|---|---|
String sessionId | Session Id which expires in 10 minutes. |
UserPassword
Parameter | Description | |
---|---|---|
String username | Username | Required |
String password | Password | Required |
SubmitDirectFormResponseType ( extends ResellerAPIResponse )
Parameter | Description | |
---|---|---|
PaymentConfirmation paymentConfirmation | Payment confirmation. | |
UpdatedDirectAddressType[ ] updatedAddresses | Updated Direct addresses. | |
UpdatedAuthorizedUserType[ ] updatedAuthorizedUsers | Updated authorized users. |
GetProvisionedOrganizationsResponseType ( extends ResellerAPIResponse )
Parameter | Description | |
---|---|---|
ProvisionedOrganizationDetailType[ ] organizations | Provisioned organizations |
GetProvisionedOrganizationsWithOtherInfoResponseType ( extends ResellerAPIResponse )
Parameter | Description | |
---|---|---|
ProvisionedOrganizationDetailWithOtherInfoType[ ] organizations | Provisioned organizations |
PaymentConfirmation
Parameter | Description | |
---|---|---|
int orderId | Order number | |
float amount | Total amount of the order | |
Date orderTime | Order time | |
Product[ ] products | Purchased products | |
String detail | Order details |
Product
Parameter | Description | |
---|---|---|
String name | Product name | |
String description | Product description | |
int quantity | Product quantity | |
float offerPrice | Offer price | |
float salePrice | Calculated sale price. When purchasing Direct addresses, the expire date of the new address will be same as purchased Direct certificate product. The sale price will be offeerPrice * (expireDate - today) / (one year). | |
float amount | Amount = salePrice * quantity | |
String startDate | Product start date | |
String expireDate | Product expire date |
UpdatedDirectAddressType ( extends UpdatedItemType )
Parameter | Description | |
---|---|---|
String username | User part of the Direct address. |
UpdatedAuthorizedUserType ( extends UpdatedItemType )
Parameter | Description | |
---|---|---|
long idp_id | Unique ID of the identity proofed individual record. |
UpdatedItemType
Parameter | Description | |
---|---|---|
ProvisionStatusType status |
|
|
String message | ||
boolean success | Whether the update is successfully completed. |
CertifiedDirectForm
Parameter | Description | |
---|---|---|
CertifiedOrganization organization | Certified organization information | |
String departmentName | departmentName | |
IDProofedIndividual[ ] administrators | Direct administrators. | |
IDProofedIndividual[ ] authorizedUsers | Authorized users. | |
DirectAddress[ ] directAddresses | Direct addresses. | |
DirectAddressSettingType[ ] organizationDefaultSettings | Organization default settings. | |
CertificateCategoryType organizationType |
|
CertifiedOrganization
Parameter | Description | |
---|---|---|
long certified_id | Unique ID of certified organization record. If this parameter is not provided, the other parameters (name, taxid, state) are required. | |
String name | Organization name | |
String taxid | Organization Tax ID | |
String state | State of organization address in two character format (ex: NJ) |
IDProofedIndividual
Parameter | Description | |
---|---|---|
long idp_id | Unique ID of identity proofed individual record. If this parameter is not provided, the other parameters (firstName, lastName, ssn4, dob) are required. | |
String firstName | First name | |
String lastName | Last name | |
String ssn4 | Last four digits of SSN | |
String dob | Date of birth |
DirectAddress ( extends IDProofedIndividual )
Parameter | Description | |
---|---|---|
String username | User part of the Direct address. Username is unique in Direct domain. | Required |
String password | Password of the Direct address. The server will ignore empty password. | |
DirectUserType userType |
|
|
int endpointId | Endpoint ID for XD, FTP/FTPS/SFTP addresses. | |
String endpointUsername | Endpoint access username for FTP/FTPS/SFTP addresses. | |
String endpointPassword | Endpoint access password for FTP/FTPS/SFTP addresses. | |
String endpointDirectory | Default delivery directory FTP/FTPS/SFTP addresses. | |
DirectAddressSettingType[ ] addressSettings | Direct address settings. |
DirectAddressSettingType
Parameter | Description | |
---|---|---|
String settingName | Setting name. Available settings:
|
Required |
String settingValue | Setting value | Required |
ProvisionedOrganizationDetailType ( extends ProvisionedOrganizationMetadataType )
Parameter | Description | |
---|---|---|
String taxid | Tax ID | |
String npi | NPI number | |
String address | Address street | |
String city | Address city | |
String state | Address state | |
String country | Address country | |
String zipcode | Address zipcode | |
OrganizationStatusType organizationStatus | Organization status:
|
|
CertificateCategoryTypecertificateCategory | Direct certificate category. Select one of below certificate type:
|
Required |
IDProofedIndividual[ ] authorizedUsers | Authorized users. | |
DirectAddress[ ] directAddresses | Direct addresses. | |
DirectAddressSettingType[ ] organizationDefaultSettings | Organization default settings. |
ProvisionedOrganizationDetailWithOtherInfoType ( extends ProvisionedOrganizationDetailType )
Parameter | Description | |
---|---|---|
Map otherInfo | otherInfo: Map. Available map keys are:
|
ProvisionedOrganizationMetadataType ( extends ProvisionedOrganizationMiniMetaType )
Parameter | Description | |
---|---|---|
String name | Organization name | |
String createdDate | Organization provisioned date (in format: YYYY-MM-DD) | |
int numOfAddresses | Number of provisioned Direct addresses | |
int numOfAuthorizedUsers | Number of provisioned authorized users |
ProvisionedOrganizationMiniMetaType
Parameter | Description | |
---|---|---|
long certified_id | Unique ID of certified organization record. | |
String directDomain | Direct domain name |
GetMessageStatusReportResponseType
Parameter | Description | |
---|---|---|
String code | Response code: 000 - success 002 - invalid user when provisioning new Direct mdEmail account 003 - registrar offer error 010 - invalid api argument or argument missing 011 - authentication failed 012 - organization missing 013 - organization permission denied 014 - direct user account error 021 - debit account authorize failed 022 - debit account capture failed 099 - other error 201 - Direct domain $domain has been used. 202 - No verified organization record is found $info 203 - The organization is not verified as healthcare provider. $info 204 - Invalid state name $info 205 - Failed to validate ID proofed individuals $info 206 - Invalid organization type $info 207 - Unsupported address type $info 208 - No organization is found for domain($domain). 209 - Direct Organization object is empty $info 210 - Direct addresso ($address) is not found. 999 - other error |
|
Boolean success | ||
String message | Error or Exception messages | |
Boolean hasCvData |
true: csvData is responsed, messageLogs is empty false: messageLogs is responsed, csvData is empty |
|
DataHandler csvData | csv formatted message status report data with below columns:
This variable is empty if hasCvData==false or no message was found in the certain date range. |
|
DirectMessageLogCollection messageLogs | And list of message log object. This variable is empty if hasCvData==true or no message was found in the certain date range. |