Analyse de reçus
Extrayez les informations du commerce, les lignes de détail, les totaux et les détails de paiement à partir des reçus. Parse fonctionne avec les reçus imprimés, les reçus numériques et le papier thermique photographié.
Schéma de reçu
Définissez un schéma qui capture les champs clés d’un reçu :
{
"name": "receipt",
"description": "Extract data from receipts",
"fields": [
{ "name": "store_name", "type": "string", "description": "Name of the store or business" },
{ "name": "store_address", "type": "string", "description": "Store location or address" },
{ "name": "date", "type": "date", "description": "Date of purchase" },
{ "name": "items", "type": "array", "description": "List of purchased items", "items": {
"type": "object",
"fields": [
{ "name": "name", "type": "string" },
{ "name": "quantity", "type": "number" },
{ "name": "price", "type": "number" }
]
}},
{ "name": "subtotal", "type": "number", "description": "Subtotal before tax" },
{ "name": "tax", "type": "number", "description": "Tax amount" },
{ "name": "total", "type": "number", "description": "Total amount paid" },
{ "name": "payment_method", "type": "string", "description": "Payment method used (e.g. Cash, Visa, Mastercard)" }
]
}Exemples de code
cURL
curl -X POST https://api-parse.conversiontools.io/v1/extract \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@receipt.jpg" \
-F "schema_id=YOUR_RECEIPT_SCHEMA_ID"Python
import requests
API_KEY = "YOUR_API_KEY"
headers = {"Authorization": f"Bearer {API_KEY}"}
with open("receipt.jpg", "rb") as f:
response = requests.post(
"https://api-parse.conversiontools.io/v1/extract",
headers=headers,
files={"file": f},
data={"schema_id": "YOUR_RECEIPT_SCHEMA_ID"},
)
data = response.json()
print(f"Store: {data['data']['store_name']}")
print(f"Total: {data['data']['total']}")
print(f"Paid with: {data['data']['payment_method']}")
for item in data["data"]["items"]:
print(f" - {item['name']}: {item['price']}")Node.js
const fs = require("fs");
const API_KEY = "YOUR_API_KEY";
const headers = { Authorization: `Bearer ${API_KEY}` };
const form = new FormData();
form.append("file", fs.createReadStream("receipt.jpg"));
form.append("schema_id", "YOUR_RECEIPT_SCHEMA_ID");
const response = await fetch("https://api-parse.conversiontools.io/v1/extract", {
method: "POST",
headers,
body: form,
});
const data = await response.json();
console.log(`Store: ${data.data.store_name}`);
console.log(`Total: ${data.data.total}`);
console.log(`Paid with: ${data.data.payment_method}`);
data.data.items.forEach((item) => {
console.log(` - ${item.name}: ${item.price}`);
});Exemple de sortie
{
"success": true,
"id": "ext_rcp_001",
"data": {
"store_name": "Fresh Market Grocery",
"store_address": "456 Oak Street, Portland, OR 97201",
"date": "2024-01-20",
"items": [
{
"name": "Organic Bananas",
"quantity": 1,
"price": 2.49
},
{
"name": "Whole Wheat Bread",
"quantity": 1,
"price": 4.99
},
{
"name": "Almond Milk 64oz",
"quantity": 2,
"price": 7.98
},
{
"name": "Free Range Eggs (12ct)",
"quantity": 1,
"price": 5.49
}
],
"subtotal": 20.95,
"tax": 1.68,
"total": 22.63,
"payment_method": "Visa ending in 4242"
},
"pages_used": 1
}Exporter vers CSV ou Excel
Vous préférez une feuille de calcul ? Exportez n’importe quelle extraction terminée au format CSV ou Excel, prête à importer dans vos outils de notes de frais ou de comptabilité. Les exports sont gratuits.
# Start the export, then download when ready
curl -X POST https://api-parse.conversiontools.io/v1/extractions/ext_rcp_001/export \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"format": "csv"}'
curl -L -o receipt.csv \
"https://api-parse.conversiontools.io/v1/extractions/ext_rcp_001/export?format=csv" \
-H "Authorization: Bearer YOUR_API_KEY"Conseils pour l’analyse de reçus
- Les reçus en papier thermique s’estompent avec le temps - scannez-les ou photographiez-les rapidement pour de meilleurs résultats
- Pour les reçus photographiés, veillez à un éclairage uniforme et évitez les ombres pour une meilleure précision
- Les reçus manuscrits sont pris en charge, mais peuvent générer davantage d’avertissements de validation
- Les formats d’image JPEG et PNG sont tous deux pris en charge - utilisez PNG pour des scans de meilleure qualité