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 [email protected] 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: [email protected]
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 [email protected] to request production credentials. Switch env vars to production URLs. Confirm first live submission returns "Accepted".
| Purpose | Contact |
|---|---|
| Sandbox access and account provisioning | [email protected] |
| Technical API support tickets | [email protected] |
| 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>[email protected]</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>[email protected]</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>[email protected]</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 | [email protected] | 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() );