API x402
Postez une lettre depuis votre code, payez en USDC
Les applications et les agents IA peuvent poster une lettre partout en Australie et payer à la lettre en USDC via x402. Sans compte, sans clé d'API, sans abonnement : il suffit d'un portefeuille et d'un client HTTP.
10 USDC par lettre en Courrier standard20 USDC par lettre en Express Post
Un seul prix jusqu'à 20 pages à plat, GST incluse. Payé en USDC sur Base, frais de gas pris en charge.
Pourquoi poster des lettres via x402 ?
La même lettre que sur le site, payée par HTTP.
- Sans compte ni clé d'API Aucune inscription. Votre code crée une lettre, obtient un prix et paie par un paiement USDC signé.
- Un prix fixe par lettre 20 USDC en Express Post, à plat en enveloppe B4, ou 10 USDC en Courrier standard, plié pour entrer dans une boîte aux lettres : ce prix couvre l'impression, l'enveloppe, l'affranchissement et le suivi jusqu'à 12 pages pliées ou 20 à plat, puis 0.30 USDC par page. GST incluse, et les frais de gas sont pour nous.
- La même lettre que sur le site Imprimée telle qu'importée sur papier A4 80 g/m², suivie, et postée le même jour ouvré si elle est payée avant 14 h 30, heure de Melbourne.
- Remboursée si elle ne peut pas être postée Si nous ne pouvons pas la poster, nous remboursons intégralement, en USDC, le portefeuille qui a payé. Une lettre que nous annulons est remboursée de la même manière.
À qui s'adresse l'API
- Agents IA Un agent qui gère un litige sur un dépôt de garantie, une déclaration de sinistre ou une réclamation auprès d'une mairie peut poster la lettre lui-même et payer depuis son propre portefeuille.
- Applications et scripts Des logiciels de gestion immobilière, juridiques ou de facturation qui postent des lettres, sans compte marchand ni forfait mensuel.
Démarrage rapide
Cinq requêtes mènent une lettre de votre code à la poste. Ni compte ni clé : le paiement nous suffit.
# 1. Create the letter
curl -X POST https://unopost.com.au/api/x402 \
-H "Content-Type: application/json" \
-d '{
"fileName": "notice.pdf",
"recipient": {
"name": "Ruth Mitchell",
"line1": "7 High Street",
"suburb": "Echuca",
"postcode": "3564"
},
"sender": {
"name": "Sam Nguyen",
"company": "Nguyen Property",
"line1": "14 Carnarvon Street",
"suburb": "Broome",
"postcode": "6725"
},
"service": "express",
"signature": true
}'
# 2. Upload the document to the uploadUrl you got back
curl -X PUT "$UPLOAD_URL" \
-H "Content-Type: application/pdf" \
--data-binary @notice.pdf
# 3. Poll until the status is ready_to_send, and check the price
curl https://unopost.com.au/api/x402/$JOB_ID
# 4. Ask to send it: the 402 says what to pay
curl -i -X POST https://unopost.com.au/api/x402/$JOB_ID/send
# 5. Sign the payment with an x402 client, and send it again
curl -i -X POST https://unopost.com.au/api/x402/$JOB_ID/send \
-H "PAYMENT-SIGNATURE: $PAYMENT_SIGNATURE"Points de terminaison
Les points de terminaison sont relatifs à https://unopost.com.au. Les requêtes et les réponses sont en JSON ; les erreurs ont la forme {"error": "..."}. Référence complète : la spécification OpenAPI.
https://unopost.com.auCréer une lettre
POST/api/x402
Envoyez par POST le nom du fichier, l'adresse du destinataire et votre adresse de retour. Vous obtenez un jobId, une uploadUrl signée et des URL pour consulter et payer la lettre.
Corps de la requête
fileNamestring · obligatoire- Le nom du fichier avec son extension : .pdf, .doc, .docx, .jpg, .jpeg ou .png.
recipientAddress · obligatoire- L'adresse à laquelle poster la lettre.
senderAddress · obligatoire- Votre adresse de retour, imprimée sur l'enveloppe pour que le courrier non distribuable vous revienne.
servicestring · facultatif"express"pour l'Express Post (valeur par défaut) ou"regular"pour le Courrier standard.duplexboolean · facultatif- Impression recto verso. Valeur par défaut :
false. Les déclarations solennelles (statutory declarations) sont toujours imprimées en recto. monoboolean · facultatif- Impression en noir et blanc. Valeur par défaut :
false; un document contenant de la couleur est imprimé en couleur. stapleboolean · facultatif- Agrafage des pages, une fois dans le coin supérieur gauche. Uniquement pour les documents de 12 pages au plus ; un document plus long est refusé lors du calcul du prix. Valeur par défaut :
false. foldboolean · facultatif- Express Post uniquement : plie la lettre dans une enveloppe C5 au lieu de l'envoyer à plat en B4, sans supplément. Ignoré pour les documents de plus de 20 pages, qui partent à plat. Les lettres en Courrier standard sont toujours pliées.
signatureboolean · facultatif- Signature à la livraison, 6 USDC de plus, avec l'un ou l'autre service. Avec
regular, la lettre part en Courrier recommandé.
Adresse
Le destinataire doit se trouver en Australie. L'adresse de retour peut être n'importe où : indiquez son pays, et son code postal devient facultatif. Chaque ligne peut compter jusqu'à 40 caractères.
namestring · facultatif- Le nom complet de la personne.
companystring · facultatif- Une entreprise ou un organisme.
line1string · obligatoire- L'adresse postale, ou une PO Box telle que
"PO Box 123". line2string · facultatif- Une seconde ligne d'adresse.
suburbstring · obligatoire- Le quartier ou la ville.
statestring · facultatif- À omettre en Australie : le code postal le détermine. S'il est fourni, l'une des valeurs
ACT,NSW,NT,QLD,SA,TAS,VICouWA, en accord avec le code postal. postcodestring · obligatoire- Quatre chiffres.
countrystring · facultatif- Adresse de retour uniquement. À omettre pour l'Australie.
curl -X POST https://unopost.com.au/api/x402 \
-H "Content-Type: application/json" \
-d '{
"fileName": "notice.pdf",
"recipient": {
"name": "Ruth Mitchell",
"line1": "7 High Street",
"suburb": "Echuca",
"postcode": "3564"
},
"sender": {
"name": "Sam Nguyen",
"company": "Nguyen Property",
"line1": "14 Carnarvon Street",
"suburb": "Broome",
"postcode": "6725"
},
"service": "express",
"signature": true
}'{
"jobId": "019d7a7f-a183-752d-9b3b-11511179033b",
"uploadUrl": "https://unopost.com.au/uploads/019d7a7f-a183-752d-9b3b-11511179033b/notice.pdf?Expires=...&Signature=...&Key-Pair-Id=...",
"statusUrl": "/api/x402/019d7a7f-a183-752d-9b3b-11511179033b",
"sendUrl": "/api/x402/019d7a7f-a183-752d-9b3b-11511179033b/send",
"status": "awaiting_upload"
}Importer le document
PUTuploadUrl
Envoyez les octets bruts du fichier par PUT à uploadUrl dans les 15 minutes. Jusqu'à 50 Mo et 80 pages. La mise en page au format A4 commence dès la réception du fichier ; il n'y a rien d'autre à appeler.
curl -X PUT "$UPLOAD_URL" \
-H "Content-Type: application/pdf" \
--data-binary @notice.pdfRécupérer une lettre
GET/api/x402/{jobId}
Attendre le prix
Interrogez toutes les quelques secondes jusqu'à ce que status vaille ready_to_send. La réponse contient alors le nombre de pages, le prix dans payment, la sendUrl et une previewUrl vers le PDF prêt à imprimer, à vérifier avant de payer.
fold suit désormais le service, true pour le Courrier standard et false pour l'Express Post, et duplex peut valoir false : les déclarations solennelles sont imprimées en recto. Une lettre en Courrier standard de plus de 12 pages est rejetée au moment de la tarification.
Suivre la lettre
Continuez d'interroger, moins souvent, jusqu'à ce que la lettre soit posted, puis delivered. Il n'y a pas d'e-mails ; chaque mise à jour apparaît dans le statut.
curl https://unopost.com.au/api/x402/$JOB_ID{
"jobId": "019d7a7f-a183-752d-9b3b-11511179033b",
"service": "express",
"duplex": false,
"mono": false,
"fold": false,
"signature": true,
"recipient": {
"name": "Ruth Mitchell",
"line1": "7 High Street",
"suburb": "Echuca",
"postcode": "3564"
},
"sender": {
"name": "Sam Nguyen",
"company": "Nguyen Property",
"line1": "14 Carnarvon Street",
"suburb": "Broome",
"postcode": "6725"
},
"pageCount": 3,
"status": "ready_to_send",
"previewUrl": "/preview/019d7a7f-a183-752d-9b3b-11511179033b/notice.pdf?Expires=...&Signature=...&Key-Pair-Id=...",
"payment": {
"scheme": "exact",
"network": "eip155:8453",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amountAtomic": "20000000",
"amountDisplay": "20 USDC",
"payTo": "0x1111111111111111111111111111111111111111",
"expiresAt": "2026-09-25T02:15:00Z"
},
"sendUrl": "/api/x402/019d7a7f-a183-752d-9b3b-11511179033b/send"
}{
"jobId": "019d7a7f-a183-752d-9b3b-11511179033b",
"service": "express",
"duplex": false,
"mono": false,
"fold": false,
"signature": true,
"recipient": {
"name": "Ruth Mitchell",
"line1": "7 High Street",
"suburb": "Echuca",
"postcode": "3564"
},
"sender": {
"name": "Sam Nguyen",
"company": "Nguyen Property",
"line1": "14 Carnarvon Street",
"suburb": "Broome",
"postcode": "6725"
},
"pageCount": 3,
"status": "posted",
"providerReference": "LTR-8F3A21C9"
}Payer et poster
POST/api/x402/{jobId}/send
Envoyez un POST à sendUrl sans paiement. La réponse est 402 Payment Required, avec les exigences de paiement encodées en base64 dans l'en-tête PAYMENT-REQUIRED.
Signez le paiement comme le décrit le protocole x402 (ou laissez une bibliothèque cliente x402 s'en charger) et renvoyez la requête avec la charge utile dans un en-tête PAYMENT-SIGNATURE. Nous le vérifions et le réglons, et la lettre part à l'impression. L'en-tête PAYMENT-RESPONSE contient le règlement.
Vous recevez un 409 avec job not ready to send juste après ready_to_send ? Patientez un instant et réessayez. Un nouvel appel après le paiement renvoie le statut sans débiter deux fois.
curl -i -X POST https://unopost.com.au/api/x402/$JOB_ID/sendHTTP/2 402
payment-required: eyJ4NDAyVmVyc2lvbiI6Mi...
{
"error": "payment required"
}{
"x402Version": 2,
"accepts": [
{
"scheme": "exact",
"network": "eip155:8453",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "20000000",
"payTo": "0x1111111111111111111111111111111111111111",
"maxTimeoutSeconds": 300,
"extra": {
"name": "USD Coin",
"version": "2"
}
}
]
}curl -i -X POST https://unopost.com.au/api/x402/$JOB_ID/send \
-H "PAYMENT-SIGNATURE: $PAYMENT_SIGNATURE"HTTP/2 202
payment-response: eyJzdWNjZXNzIjp0cnVlLC...
{
"jobId": "019d7a7f-a183-752d-9b3b-11511179033b",
"status": "sending"
}Statuts
awaiting_upload- En attente du fichier.
processing- Mise en page du document au format A4 et tarification.
ready_to_send- Tarifée et en attente de paiement. Le devis est valable 7 jours.
sending- Payée, et placée dans la file d'impression.
retrying- L'impression a rencontré un problème ; nous réessayons automatiquement.
posted- Imprimée et déposée auprès d'Australia Post.
delivered- Livrée par Australia Post. Le document a été supprimé à l'expédition.
failed- Non postée ; la raison figure dans
error, par exemple un devis expiré sans paiement. Une lettre payée qui ne peut pas être postée est intégralement remboursée. refunded- Le paiement a été renvoyé au portefeuille qui l'avait effectué.
Erreurs
400- Requête invalide : par exemple un champ manquant, un type de fichier non pris en charge, une ligne d'adresse de plus de 40 caractères, un code postal hors de l'État, la signature à la livraison avec le Courrier standard, ou une lettre en Courrier standard de plus de 12 pages.
402- Un paiement est requis, ou le paiement n'a pas pu être vérifié ou réglé.
erroren indique la raison. 404- Aucune lettre ne porte ce
jobId. 409job not ready to send: attendezready_to_sendet réessayez.quote expired: créez de nouveau la lettre.
Foire aux questions
Qu'est-ce que x402 ?
Un protocole ouvert pour payer par HTTP. Le serveur répond 402 Payment Required avec un prix ; le client signe un paiement en stablecoin et renvoie la requête. Sans compte, sans carte, sans facture.
De quoi ai-je besoin ?
D'un portefeuille sur Base avec suffisamment d'USDC, et d'un client HTTP. Pas besoin d'ETH pour le gas : le paiement est une autorisation de transfert d'USDC signée, et nous prenons en charge les frais de réseau.
Combien coûte une lettre ?
20 USDC en Express Post jusqu'à 20 pages, puis 0.30 USDC par page, ou 10 USDC en Courrier standard pour une lettre de 12 pages au plus, GST incluse. La signature à la livraison coûte 6 USDC de plus avec l'un ou l'autre service ; le Courrier standard remis contre signature est le Courrier recommandé, 16 USDC. Le suivi, l'impression recto verso et en noir et blanc, l'agrafage jusqu'à 12 pages, ainsi que le pliage d'une lettre Express Post dans une enveloppe DL à fenêtre sont gratuits. La réponse de statut indique le prix exact avant le paiement.
Puis-je vérifier la lettre avant de payer ?
Oui. Une fois la lettre prête à l'envoi, previewUrl donne le PDF prêt à imprimer, mis en page au format A4 exactement tel qu'il sera imprimé. Rien n'est débité tant que vous ne payez pas.
Quand est-elle postée, et combien de temps met-elle à arriver ?
Les lettres payées avant 14 h 30, heure de Melbourne, un jour ouvré sont postées le jour même ; les suivantes, le jour ouvré d'après. L'Express Post arrive en général le jour ouvré suivant au sein du réseau Express Post, le Courrier standard en 3 à 7 jours ouvrés.
Que se passe-t-il si la lettre ne peut pas être postée ?
Son statut passe à failed et nous remboursons le montant intégral en USDC au portefeuille qui a payé, qu'elle ait échoué ou que nous l'ayons annulée. Pour toute autre question, écrivez à support@unopost.com.au en indiquant le jobId.
Que devient mon document ?
Il est chiffré en transit et définitivement supprimé, avec sa copie prête à imprimer, une fois la lettre déposée auprès d'Australia Post. Si une lettre n'est pas payée ou ne peut pas être postée, il est supprimé au bout de 14 jours.
Où les lettres peuvent-elles aller ?
À toute adresse en Australie, PO Box comprises, dans tous les États et territoires. L'API ne poste pas vers l'étranger.
Qui est responsable de ce qu'envoie un agent ?
Vous. Chaque lettre payée depuis votre portefeuille est la vôtre, y compris celle qu'un agent a rédigée et envoyée sur vos instructions, et vous devez avoir le droit d'envoyer ce qu'elle contient. Nos Conditions d'utilisation énumèrent ce qui ne peut pas être posté : l'usurpation d'identité, le harcèlement, les escroqueries, la publicité non sollicitée en nombre et tout ce qui enfreint une décision de justice. Nous annulons les lettres qui enfreignent ces règles et les remboursons intégralement. Si vous postez pour le compte d'un tiers, vous êtes responsable de son document comme s'il était le vôtre.
Tarifs
| Prestation | Prix |
|---|---|
| Courrier standard, plié pour entrer dans une boîte aux lettres : jusqu'à 12 pages | 10 USDC |
| Courrier recommandé, le Courrier standard remis contre signature : jusqu'à 12 pages | 16 USDC |
| Express Post, à plat en enveloppe B4 : 20 pages incluses, puis 0.30 USDC par page supplémentaire | 20 USDC |
| Express Post avec signature à la livraison : 20 pages incluses, puis 0.30 USDC par page supplémentaire | 26 USDC |
| Suivi, impression couleur, recto verso ou noir et blanc, et agrafage | Gratuit |
| Frais de réseau (gas) | Pris en charge |
Les prix sont en USDC sur Base. Le prix est fixé une fois votre document mis en page au format A4 ; les devis sont valables 7 jours.
Les tarifs peuvent évoluer. L'utilisation de ce service est soumise à nos Conditions d'utilisation et à notre Politique de confidentialité.