Code Examples
Integration examples for AS2aaS across programming languages and use cases.
Node.js Examples
Basic Message Sending
const AS2aaS = require('as2aas');
const client = new AS2aaS('pk_live_your_api_key');
async function sendMessage(partnerAs2Id, orderData) {
const message = await client.messages.create({
partner_id: partnerAs2Id,
subject: `Purchase Order ${orderData.orderNumber}`,
payload: {
content: generateEDI850(orderData)
},
content_type: 'application/edi-x12'
});
return message;
}
Webhook Handler
app.post('/webhooks/as2', (req, res) => {
const event = req.body;
switch (event.event) {
case 'message.received':
handleIncomingMessage(event.data);
break;
case 'message.delivered':
updateOrderStatus(event.data.id, 'delivered');
break;
}
res.status(200).send('OK');
});
Python Examples
Django Integration
import requests
class AS2aaSService:
def __init__(self, api_key):
self.api_key = api_key
self.base_url = 'https://api.as2aas.com'
def send_message(self, partner_id, subject, payload, content_type):
headers = {
'Authorization': f'Bearer {self.api_key}',
'Content-Type': 'application/json'
}
data = {
'partner_id': partner_id,
'subject': subject,
'payload': {'content': payload},
'content_type': content_type
}
response = requests.post(f'{self.base_url}/v1/messages',
headers=headers, json=data)
return response.json()
Error Handling
Retry Logic
async function sendWithRetry(messageData, maxRetries = 3) {
for (let attempt = 1; attempt <= maxRetries; attempt++) {
try {
return await as2.messages.create(messageData);
} catch (error) {
if (error.status === 422) throw error;
if (attempt === maxRetries) throw error;
const delay = Math.pow(2, attempt) * 1000;
await new Promise(resolve => setTimeout(resolve, delay));
}
}
}