Passer au contenu

Exemples de demandes et de réponses

Un flux complet de création d'une créance à l'enregistrement d'un paiement, plus les réponses d'erreur communes.

État public de l'API

L'API v1 utilise les clés porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte- porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte-porte--porte-------porte------pere-pere.

Ces exemples utilisent des clés de placeholder et des données fictives. Exécutez-les contre votre propre entreprise seulement.

1. Créer un projet de créance

BASH
curl https://api.remindcash.com/v1/receivables \
  --request POST \
  --header "Authorization: Bearer $REMINDCASH_API_KEY" \
  --header "Idempotency-Key: create-inv-1042-0001" \
  --header "Content-Type: application/json" \
  --data '{
    "customer": { "display_name": "Studio North", "email": "billing@studionorth.example" },
    "amount": "1250.00",
    "currency": "USD",
    "due_date": "2026-10-15",
    "external_reference": "INV-1042",
    "description": "Website redesign"
  }'
JSON
{
    "data": {
        "id": 1,
        "customer_id": 1,
        "amount_minor": 125000,
        "paid_minor": 0,
        "currency": "USD",
        "due_date": "2026-10-15",
        "status": "draft",
        "external_reference": "INV-1042",
        "description": "Website redesign",
        "version": "4e6fea39ae2fab8ccb843657f081d276513739a71787c060a007b65e3acbbbc1"
    }
}

Envoi de la même requête avec le même Idempotency-Key retourne cette même réponse.

2. Déplacer la date d'échéance

BASH
curl https://api.remindcash.com/v1/receivables/1 \
  --request PATCH \
  --header "Authorization: Bearer $REMINDCASH_API_KEY" \
  --header "Idempotency-Key: update-inv-1042-0001" \
  --header "Content-Type: application/json" \
  --data '{
    "expected_version": "4e6fea39ae2fab8ccb843657f081d276513739a71787c060a007b65e3acbbbc1",
    "due_date": "2026-10-20"
  }'
JSON
{
    "data": {
        "id": 1,
        "customer_id": 1,
        "amount_minor": 125000,
        "paid_minor": 0,
        "currency": "USD",
        "due_date": "2026-10-20",
        "status": "draft",
        "external_reference": "INV-1042",
        "description": "Website redesign",
        "version": "aed5e5d947a49b4805d8389b618896872615e9e46f13536a11fbaad167d04b93"
    }
}

3. Enregistrer un paiement partiel

BASH
curl https://api.remindcash.com/v1/receivables/1/payments \
  --request POST \
  --header "Authorization: Bearer $REMINDCASH_API_KEY" \
  --header "Idempotency-Key: payment-inv-1042-0001" \
  --header "Content-Type: application/json" \
  --data '{ "amount": "250.00" }'
JSON
{
    "data": {
        "id": 1,
        "receivable_id": 1,
        "amount_minor": 25000,
        "remaining_after_minor": 100000,
        "status_after": "draft",
        "recorded_at": "2026-10-11T12:58:05.000000Z"
    }
}

4. Annuler la créance

BASH
curl https://api.remindcash.com/v1/receivables/1/cancel \
  --request POST \
  --header "Authorization: Bearer $REMINDCASH_API_KEY" \
  --header "Idempotency-Key: cancel-inv-1042-00001" \
  --header "Content-Type: application/json" \
  --data '{ "reason": "Customer cancelled the project." }'
JSON
{
    "data": {
        "id": 1,
        "status": "cancelled",
        "paid_minor": 25000,
        "version": "049a6c669d9211215001be5a324c3f5c9e057797ef4d89e21c8aa632578a87ae"
    }
}

Erreurs courantes

Réutiliser une clé d'idempotency avec un corps différent :

JSON
{
    "error": {
        "code": "conflict",
        "message": "Request conflicts with current state."
    },
    "request_id": "13676e74-1d59-47c7-b7d0-b6e763cb8766"
}

Mise à jour avec un stale expected_version retourne également 409 conflict. Une clé manquante retourne :

JSON
{
    "error": {
        "code": "validation_failed",
        "message": "Validation failed.",
        "fields": {
            "Idempotency-Key": [
                "Provide a 16–128 character Idempotency-Key using letters, digits, dots, underscores, colons or hyphens."
            ]
        }
    },
    "request_id": "249b739e-00f7-41ee-875a-266cfd4870bc"
}

Un changement de statut qui n'est pas autorisé - par exemple en arrêtant une ébauche :

JSON
{
    "error": {
        "code": "validation_failed",
        "message": "Validation failed.",
        "fields": {
            "action": [
                "This status change is not available for the receivable."
            ]
        }
    },
    "request_id": "f9e414bd-5508-4c43-82bb-ce56ced55f77"
}