BIN PCN Lookup API: Verify Pharmacy Benefits Programmatically
Every pharmacy claim in the United States is routed using three numbers: BIN, PCN, and Group. These identifiers determine which processor handles the claim, which plan covers the patient, and what pricing applies. Getting them wrong means rejected claims, frustrated pharmacists, and lost revenue. This guide explains what these numbers are, why they matter, and how to verify them programmatically.
What is a BIN number?
The Bank Identification Number (BIN) is a 6-digit code assigned by NCPDP that routes pharmacy claims to the correct processor. Despite the banking terminology (a holdover from when pharmacy claims literally went through banking networks), the BIN is simply a routing address.
- • 610014 OptumRx (formerly Catamaran)
- • 004336 Express Scripts
- • 610591 CVS Caremark
- • 015581 Cigna
- • 610341 Common discount card BIN
When a pharmacy switch receives a claim, it reads the BIN and forwards the claim to the corresponding processor. If the BIN is invalid or unregistered, the claim is rejected immediately with reject code 04 (M/I BIN Number).
What is a PCN?
The Processor Control Number (PCN) is a secondary routing code that identifies a specific program or plan within a BIN. A single processor might handle dozens of different discount card programs, employer plans, or PBM contracts. The PCN tells them which one applies to this claim.
PCN is technically optional in the NCPDP spec, but in practice, most processors require it. Without the correct PCN, you'll typically get reject code 25 (M/I Processor Control Number) or the claim will adjudicate against the wrong pricing schedule.
Why BIN/PCN verification matters
Claim rejections cost real money. Every rejected claim triggers:
- • Pharmacy staff time: 3–5 minutes troubleshooting per rejection. At $25/hr, that's $1.25–$2.08 per reject.
- • Patient frustration: Patients waiting at the counter while the pharmacist calls their insurance.
- • Abandoned prescriptions: 30% of patients don't return to pick up prescriptions after a rejection event.
- • Revenue loss: Each unfilled prescription is lost revenue for the pharmacy and a missed dose for the patient.
The E1 eligibility check exists specifically to prevent this. By verifying BIN/PCN/Group/Member ID before submitting the actual claim, you catch problems early.
E1 eligibility: the BIN/PCN verification endpoint
The NCPDP E1 transaction is purpose-built for benefit verification. Send patient and insurance identifiers, get back coverage details. Here's how it works with Starlight:
curl -X POST https://starlight.claims/api/v1/submit \
-H "X-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"transaction_type": "E1",
"patient": {
"first_name": "JOHN",
"last_name": "SMITH",
"date_of_birth": "19900301"
},
"insurance": {
"bin_number": "610014",
"pcn": "OPTUM",
"group_id": "RXGRP01",
"cardholder_id": "ABC123456789",
"person_code": "01"
}
}'An accepted response (responseStatus: "A") confirms:
- • The BIN routes to a valid processor
- • The PCN maps to a recognized program
- • The member is active and eligible
- • Coverage details (plan type, copay structure, formulary tier)
Common BIN/PCN rejection scenarios
BIN is invalid, expired, or not registered with the pharmacy switch. Usually means the card is from a defunct program.
PCN doesn't match any active program under this BIN. Common when programs are restructured or consolidated.
BIN/PCN are valid but the member ID doesn't exist. Patient may have a new card with updated information.
BIN/PCN/Member match but coverage has been terminated. Employee left the company, or plan expired.
Some switches return 01 instead of 04 for unroutable BINs. Same root cause.
Building a BIN/PCN lookup workflow
For pharmacy software, the optimal pattern is:
- 1.On card entry: Send an E1 eligibility check immediately when the pharmacist scans or enters card information
- 2.Validate response: If rejected, display the reject code with a human-readable message. Suggest corrections (common BIN typos, PCN formatting).
- 3.Cache results: Store successful eligibility responses for the session. No need to re-verify for each prescription in the same visit.
- 4.Submit B1: With confirmed eligibility, submit the actual B1 billing claim. Rejection rate drops dramatically.
This pattern reduces B1 rejection rates by 40–60% in typical pharmacy workflows. The E1 check costs a fraction of the time and money wasted on rejected B1 claims.
Related guides
- • What Is an Rx PCN Number? — deep dive into BIN, PCN, and Group ID
- • Insurance Eligibility Verification API — use BIN/PCN to check patient coverage
- • How to Submit Pharmacy Claims via API — from BIN/PCN lookup to paid claim
- • Pharmacy Claims Processing Workflow — where BIN/PCN routing fits in the full lifecycle
Start verifying pharmacy benefits today
The Starlight E1 endpoint handles BIN/PCN routing, NCPDP encoding, and response parsing. You send JSON, get JSON back.