PARS is the only system that performs direct provider-to-state-board electronic CE submission for physicians across all 50 states. One POST request and ACCME distributes to every applicable licensing board automatically.
| Service | Purpose | Methods |
|---|---|---|
| Activity API | Register CME course records in PARS. Required before any learner submission. | SaveActivity • GetActivity |
| Learner API | Submit individual physician completion records. ACCME distributes to state boards overnight. | SaveLearnerActivity • GetLearnerStatus |
| Learner Match | Pre-validate physician identity before submitting. Eliminates most rejections. | LearnerMatchRequest |
| Constraint | Detail |
|---|---|
Who | US-licensed physicians only - MD, DO, PA. AMA PRA Category 1 or MOC credit. No nurses or dental. |
Consent | Learner must consent before data is submitted. Add consent checkbox to AMC Certificate Platform iframe. |
Protocol | TLS 1.2 minimum on all connections. |
Format | REST plus XML only. Content-Type: application/xml; charset=utf-8. Not JSON. |
SOAP | Legacy SOAP deprecated. All new development must use REST XML only. |
Window | Current year and previous year. 2025 completions accepted until March 31, 2027. |
Dates | Date only - no time component. Including a time causes Central-to-UTC conversion errors. |
Editing | Learner records cannot be edited. Delete and resubmit with corrections. |
| Board | Acronym |
|---|---|
| American Board of Internal Medicine | ABIM |
| American Board of Anesthesiology | ABA |
| American Board of Pediatrics | ABP |
| American Board of Pathology | ABPath |
| American Board of Otolaryngology - Head and Neck Surgery | ABOHNS |
| American Board of Orthopaedic Surgery | ABOS |
| American Board of Surgery | ABS |
| American Board of Thoracic Surgery | ABTS |
Follow these steps in order. Sandbox must be fully working before requesting production credentials.
AMC primary contact emails info@accme.org requesting a web services user account and sandbox access. Two accounts provisioned: web services account (API username + password) and UI account (browser interface). Both needed. Technical support tickets: dataservices@accme.org
Activity XML: accme.org/publications/PARS/xml-activity-upload-instructions
Learner XML: accme.org/publications/PARS/xml-learner-submission-instructions
JA-PARS: jointaccreditation.org/about-ja-pars
Every AMC CME course must be registered via SaveActivity before learner completions can be submitted. One-time per course, not per learner. Store the returned PARS Activity ID in the amc_pars_activities Postgres table.
ACCME provides 350+ test physician records covering all MOC boards and all 50 states. Test until SaveActivity and SaveLearnerActivity both return "Accepted" consistently. Never use real physician data in sandbox.
Email info@accme.org to request production credentials. Switch env vars to production URLs. Confirm first live submission returns "Accepted".
| Purpose | Contact |
|---|---|
| Sandbox access and account provisioning | info@accme.org |
| Technical API support tickets | dataservices@accme.org |
| Support hours | Monday-Friday, excluding US federal holidays and Juneteenth |
Register and manage CME course records in PARS. Must be completed before any learner completions can be submitted for that course. Real-time responses.
https://pars.accme.org/services/ACCMEService.svc/IACCMEServiceRESThttps://pars03nsbgateways02.azure-api.net/services/ACCMEService.svc/IACCMEServiceREST.../IACCMEServiceREST/SaveActivityContent-Type: application/xml; charset=utf-8. The activityRecordAction field controls Add, Update, or Delete.
<?xml version="1.0" encoding="utf-8"?>
<SubmitMessage xmlns="http://schemas.datacontract.org/2004/07/BLL.Service">
<User>webserviceuser@amcompliance.com</User>
<Password>*YOUR_WS_PASSWORD*</Password>
<ProviderId>0008273</ProviderId>
<ReportingYear>2026</ReportingYear>
<Data>
<accme:ACCMEActivities
xmlns="http://ns.medbiq.org/metrics/v2/"
xmlns:accme="http://docs.accme.org/schemas/ACCMEActivities/v3/"
xmlns:ex="http://www.accme.org/ACCMEActivityExtension/v3"
xmlns:lom="http://ltsc.ieee.org/xsd/LOM"
xmlns:hx="http://ns.medbiq.org/lom/extend/v1/">
<MedicalEducationMetrics>
<ReportDescription>
<ReportingStartDate>2026-01-01</ReportingStartDate>
<ReportingEndDate>2026-12-31</ReportingEndDate>
</ReportDescription>
<lom:lom>
<lom:general>
<lom:identifier>
<lom:catalog>Provider Activity ID</lom:catalog>
<lom:entry>AMC-HIPAA-2025-V4</lom:entry>
</lom:identifier>
<lom:title><lom:string>HIPAA Privacy and Security for Physicians</lom:string></lom:title>
</lom:general>
<hx:healthcareMetadata>
<hx:healthcareEducation>
<hx:credits>
<hx:activityCertification>AMA PRA Category 1</hx:activityCertification>
<hx:numberOfCredits>1.0</hx:numberOfCredits>
</hx:credits>
<hx:startDateTime>2026-01-01</hx:startDateTime>
<hx:endDateTime>2026-12-31</hx:endDateTime>
<hx:activitySponsorship>direct</hx:activitySponsorship>
<hx:activityFormat><lom:string>Internet Enduring Material</lom:string></hx:activityFormat>
<hx:commercialSupport>no</hx:commercialSupport>
</hx:healthcareEducation>
</hx:healthcareMetadata>
</lom:lom>
<XtensibleInfo>
<ex:CreditClaimDate>2026-12-31</ex:CreditClaimDate>
<ex:ForPublicList>true</ex:ForPublicList>
<ex:activityRecordAction>Add</ex:activityRecordAction>
<ex:closeActivityRecord>false</ex:closeActivityRecord>
</XtensibleInfo>
</MedicalEducationMetrics>
</accme:ACCMEActivities>
</Data>
</SubmitMessage>
.../IACCMEServiceREST/GetActivityPass the ACCME Activity ID or Provider Activity ID to retrieve the stored record and get the PARS-assigned Activity ID needed for learner submissions.
Submit individual physician completion records. ACCME distributes to state medical licensing boards and MOC certifying boards automatically.
https://pars.accme.org/services/ACCMELearnerService.svc/IACCMELearnerServiceRESThttps://pars03nsbgateways01.azure-api.net/services/ACCMELearnerService.svc/IACCMELearnerServiceREST.../IACCMELearnerServiceREST/SaveLearnerActivityReal-time response. Always run LearnerMatchRequest first to avoid rejections.
<SubmitMessage xmlns="http://schemas.datacontract.org/2004/07/BLL.Service">
<User>webserviceuser@amcompliance.com</User>
<Password>*YOUR_WS_PASSWORD*</Password>
<ProviderId>0008273</ProviderId>
<Data>
<ar:ACCMELearnerRecords
xmlns:ar="http://docs.accme.org/schemas/ACCMELearnerRecords/v1/">
<ar:LearnerRecord>
<ar:FirstName>James</ar:FirstName>
<ar:LastName>Holloway</ar:LastName>
<ar:DateOfBirth>1975-03-22</ar:DateOfBirth>
<ar:MedicalEducationNumber>1234567890</ar:MedicalEducationNumber>
<ar:ProviderID>0008273</ar:ProviderID>
<ar:ProviderActivityID>AMC-HIPAA-2025-V4</ar:ProviderActivityID>
<ar:AccmeActivityID>12345678</ar:AccmeActivityID>
<ar:DateTimeCreated>2026-05-06</ar:DateTimeCreated>
<ar:CompletedDateTime>2026-05-06</ar:CompletedDateTime>
<ar:Credits>
<ar:Credit>
<ar:CreditType>AMA PRA Category 1 Credit</ar:CreditType>
<ar:CreditAmount>1.0</ar:CreditAmount>
</ar:Credit>
</ar:Credits>
</ar:LearnerRecord>
</ar:ACCMELearnerRecords>
</Data>
</SubmitMessage>
| Status | Meaning |
|---|---|
| Submitted | PARS accepted the record. For MOC credit, queued for overnight transmission to certifying board. |
| Transmitted | Sent to certifying board. Board is applying its own validation rules. |
| Approved | Board accepted. Credit applied to physician file. |
| Rejected | Board rejected. AMC primary contact notified by email with error codes. Delete and resubmit. |
| Field | PARS element | Required | Notes |
|---|---|---|---|
date_of_birth | ar:DateOfBirth | Required | Most common rejection reason. Must match PARS exactly. Format: YYYY-MM-DD. |
npi | ar:MedicalEducationNumber | Required | 10-digit NPI. Show only for MD/DO/PA titles. |
| Consent checkbox | pre-condition | Required | "I consent to my CME completion being reported to ACCME PARS." Cannot submit without this. |
Pre-validate a physician identity against PARS before submitting a completion record. Returns a single integer. Run this before every SaveLearnerActivity call.
https://pars.accme.org/services/ACCMELearnerService.svc/IACCMELearnerServiceREST/LearnerMatchRequesthttps://pars03nsbgateways01.azure-api.net/services/ACCMELearnerService.svc/IACCMELearnerServiceREST/LearnerMatchRequest
<SubmitMessage xmlns="http://schemas.datacontract.org/2004/07/BLL.Service">
<User>webserviceuser@amcompliance.com</User>
<Password>*YOUR_WS_PASSWORD*</Password>
<ProviderId>0008273</ProviderId>
<Data>
<ar:LearnerMatchRequest
xmlns:ar="http://docs.accme.org/schemas/ACCMELearnerRecords/v1/">
<ar:FirstName>James</ar:FirstName>
<ar:LastName>Holloway</ar:LastName>
<ar:DateOfBirth>1975-03-22</ar:DateOfBirth>
<ar:MedicalEducationNumber>1234567890</ar:MedicalEducationNumber>
</ar:LearnerMatchRequest>
</Data>
</SubmitMessage>
Build and fully test in sandbox before requesting production credentials. Never use real physician data in sandbox.
| Service | Sandbox URL |
|---|---|
| Activity API | https://pars03nsbgateways02.azure-api.net/services/ACCMEService.svc/IACCMEServiceREST |
| Learner API + Match | https://pars03nsbgateways01.azure-api.net/services/ACCMELearnerService.svc/IACCMELearnerServiceREST |
| Sandbox UI | pars.accme.org - separate UI credentials provisioned by ACCME |
| Environment | Sandbox or production - always specify |
| Full XML request | Complete payload sent, credentials redacted |
| Full XML response | Complete response received from PARS |
| API endpoint URL | The full URL called |
| Error codes | Any numeric codes in the response |
| Steps taken | What has already been tried to resolve |
Source: ACCME PARS Web Services documentation Appendices A and B, June 2025. All rejection codes returned in real time in the response XML.
| Code | Meaning | Fix |
|---|---|---|
100 | Invalid Provider ID | Verify AMC Provider ID is exactly 0008273 |
101 | Date range invalid | startDateTime must be before endDateTime |
102 | Credit amount invalid | Must be a positive numeric matching the credit type |
103 | Invalid activity format | Must match accepted strings e.g. Internet Enduring Material |
104 | Commercial support missing | hx:commercialSupport must be yes or no |
105 | CreditClaimDate before end date | CreditClaimDate must be on or after endDateTime |
200 | MOC error - ABIM | Verify MOC credit type and points per ABIM requirements |
322 | ABOS-specific error | ABOS diplomate ID required when registering ABOS MOC activities |
| Code | Meaning | Fix |
|---|---|---|
300 | Learner not found | Run LearnerMatchRequest first. Name, DOB, or NPI does not match any PARS record. |
301 | Ambiguous identity | Matches multiple physicians - refine identifying data |
302 | Activity not found | Run SaveActivity first - activity ID does not exist in PARS |
303 | Date outside activity window | CompletedDateTime must be between startDateTime and CreditClaimDate |
304 | Duplicate record | This learner plus activity already submitted - do not resubmit |
305 | Invalid credit amount | Must exactly match activity registered credit hours |
306 | Non-US physician | PARS accepts US-licensed physicians only |
307 | Consent not recorded | Add consent checkbox to AMC Certificate Platform iframe |
310 | MOC board rejection | ACCME emails AMC primary contact with full detail and next steps |
Replace node 6A (ACCME PARS Submit placeholder) in the AMC Certificate Submission Router with this 4-node sequence.
_routing.route_accme_pars === true AND learner.npi not empty AND learner.date_of_birth not empty. False branch skips to CE Broker node. Both NPI and DOB required - submission rejected without them./LearnerMatchRequest. Auth: Basic Auth using ACCME_PARS_USER and ACCME_PARS_PASSWORD from n8n credential vault. Content-Type: application/xml; charset=utf-8. Parse XML response integer. If value is not 1, route to Error Handler with match code logged./SaveLearnerActivity. Same credentials. Map: ProviderID = 0008273, ProviderActivityID from course.course_id, AccmeActivityID from amc_pars_activities lookup table, CompletedDateTime = course.completion_date (date only - strip any time). "Accepted" means store credit ID and continue. "Rejected" means throw error with code./GetLearnerStatusByCreditId with the credit ID from step 3. Parse status: Submitted, Approved, or Rejected. Update Postgres audit record. If Rejected, alert Advik with ACCME error codes.| Variable | Value | Notes |
|---|---|---|
ACCME_PARS_USER | webserviceuser@amcompliance.com | From ACCME provisioning |
ACCME_PARS_PASSWORD | *provisioned by ACCME* | Store in n8n credential vault - never in code |
ACCME_PROVIDER_ID | 0008273 | AMC ACCME Provider ID |
ACCME_ENV | sandbox or production | Toggle base URLs - keep sandbox until fully tested |
CREATE TABLE amc_pars_activities ( amc_course_id TEXT PRIMARY KEY, pars_activity_id TEXT NOT NULL, course_title TEXT, credit_hours NUMERIC, credit_type TEXT DEFAULT 'AMA PRA Category 1 Credit', registered_at TIMESTAMPTZ DEFAULT NOW() ); INSERT INTO amc_pars_activities VALUES ( 'AMC-HIPAA-2025-V4', '12345678', 'HIPAA Privacy and Security for Physicians', 1.0, 'AMA PRA Category 1 Credit', NOW() );