For the complete documentation index, see llms.txt. This page is also available as Markdown.

Documentazione API di YoPlanning Payment Manager

POST /api/create-payment

Crea un link di pagamento (Stripe) e restituisce un URL a cui reindirizzare il cliente.

URL di base: https://payment.yoplanning.pro


Autenticazione

Il Gestore dei pagamenti utilizza l'autenticazione basata su token, separata dal token API principale di YoPlanning.

Authorization: Token <PAYMENT_MANAGER_TOKEN>
Content-Type: application/json

Importante: Il token di Payment Manager non è lo stesso del token dell'API YoPlanning v3.1. Si tratta di due token distinti. L'utilizzo di quello sbagliato restituirà l'errore 401 "Token non valido"..

Token
Utilizzato per
Dove trovarlo

Token API di YoPlanning

yoplanning.pro/api/v3.1/* (disponibilità, ordini, ecc.)

Back office > API > Token

Token del gestore dei pagamenti

payment.yoplanning.pro/api/*

Back office > Impostazioni di pagamento > Token API


Richiesta

POST https://payment.yoplanning.pro/api/create-payment
Authorization: Token <PAYMENT_MANAGER_TOKEN>
Content-Type: application/json

Parametri corporei

Campo
Necessario
Tipo
Descrizione

order_id

corda

Il tuo identificativo d'ordine (ovvero l'UUID restituito da /order-typicalvalidation)

vendor_id

stringa (UUID)

Il tuo identificativo fornitore (lo trovi nelle impostazioni di pagamento di YoPlanning)

prezzo

numero

Importo totale nell'unità principale della valuta (ad esempio, 196,00 per 196 euro). Non in centesimi.

valuta

corda

Codice valuta ISO 4217 (ad esempio "EUR", "USD")

callback_url

stringa (URL)

URL di notifica IPN: deve essere accessibile pubblicamente. Chiamata tramite POST al completamento del pagamento.

redirection_url

NO

stringa (URL)

Dove reindirizzare il cliente dopo un pagamento andato a buon fine

cancel_url

NO

stringa (URL)

Dove reindirizzare il cliente in caso di cancellazione?

payer_email

NO

corda

Precompila il campo email nella pagina di pagamento

nome_del_titolare_della_carta

NO

corda

Precompila il nome del titolare della carta

cognome_del_titolare_della_carta

NO

corda

Precompila il cognome del titolare della carta

billing_address_line1

NO

corda

Indirizzo di fatturazione, riga 1

indirizzo_di_fatturazione_riga2

NO

corda

Riga 2 dell'indirizzo di fatturazione

città_indirizzo_di_fatturazione

NO

corda

Città

codice_postale_indirizzo_di_fatturazione

NO

corda

Codice Postale

paese_indirizzo_di_fatturazione

NO

corda

Paese

stato dell'indirizzo di fatturazione

NO

corda

Stato/Regione

Note importanti

  • Il campo si chiama price, non amount. Inviare amount invece di price genererà un 500 Internal Server Error perché il server riceve price=None.

  • Il prezzo è espresso in euro (o nella tua valuta), non in centesimi. Invia 196.00, non 19600.

  • Il campo callback_url è obbligatorio, anche se non si elaborano attivamente le notifiche IPN. Ometterlo genera un errore di validazione.

  • Il Payment Manager è un servizio di link di pagamento fisso: accetta un prezzo totale, non una ripartizione per singolo articolo. Gli articoli dell'ordine appartengono all'API di prenotazione di YoPlanning (/order-validation), non a questa sezione.


Risposta

Successo (200)

Campo
Tipo
Descrizione

successo

booleano

true se il link di pagamento è stato creato

payment_id

stringa (UUID)

Identificativo univoco di pagamento

customer_id

stringa o null

ID cliente se riconosciuto

tassa_vakario

corda

Commissione della piattaforma (stringa decimale)

soluzione_di_pagamento

corda

Fornitore di pagamento utilizzato ("Stripe")

payment_url

stringa (URL)

Reindirizzare il cliente a questo URL per completare il pagamento.

Errore di convalida (400)

Errore di autenticazione (401)

Nessuna intestazione Authorization:

Token errato (ad esempio, si sta utilizzando il token API di YoPlanning anziché il token di Payment Manager):

Errore del server (500)

Restituisce una pagina di errore HTML (non JSON) con il messaggio "La piattaforma di pagamento è momentaneamente non disponibile."

Questo non è un vero e proprio guasto della piattaforma. In pratica, gli errori 500 sono causati da:

Causa ultima
Errore lato server
Aggiustare

campo price mancante o null

TypeError: '>' non supportato tra istanze di 'NoneType' e 'int' in checkPaymentSolution

Assicurati che price sia un numero nel corpo JSON. Il campo si chiama price, non amount.

vendor_id mancante o non valido

Vari errori nei moduli di Django

Assicurati che vendor_id sia una stringa UUID valida

La risposta 500 restituisce HTML, non JSON. Se ti aspetti un JSON, esegui un'analisi difensiva.


Richiamata IPN

Quando il pagamento viene completato (o fallisce), il Gestore dei pagamenti invia una richiesta POST al tuo callback_url:

Campo
Tipo
Descrizione

successo

booleano

Se il pagamento è andato a buon fine

pagato

booleano

Se il pagamento è stato riscosso

order_id

corda

L'order_id che hai inserito al momento della creazione del pagamento

soluzione_di_pagamento

corda

Fornitore utilizzato

payer_lang

corda

Lingua del browser del pagatore

Requisiti per callback_url:

  • Deve essere accessibile al pubblico (senza autenticazione).

  • Deve accettare le richieste POST

  • Deve restituire un codice di stato 2xx


Esempio completo

arricciare

JavaScript (fetch)

Python (richieste)


Flusso di integrazione tipico


CORS

L'API Payment Manager non restituisce intestazioni CORS. Le chiamate dirette da un browser verranno bloccate dalla politica same-origin del browser.

Soluzioni:

  • Utilizza un proxy lato server (ad esempio Cloudflare Worker, backend Node.js, funzione serverless) per inoltrare le richieste.

  • Chiama l'API dal tuo backend, non dal codice JavaScript lato client.


FAQ

D: Ricevo l'errore 401 "Token non valido" ma il mio token funziona con l'API di YoPlanning. R: Il Payment Manager ha un proprio token, separato dal token dell'API di YoPlanning v3.1. Verifica le impostazioni di pagamento nel back office per il token corretto.

D: Ricevo una pagina di errore HTML 500 invece di JSON. R: Questo significa quasi sempre che manca un campo obbligatorio o che è null. Verifica che price (non amount) sia un numero nel corpo della richiesta. Verifica inoltre che vendor_id sia presente e valido.

D: Il mio callback_url non è ancora raggiungibile. Posso ometterlo? R: No, callback_url è obbligatorio. Puoi impostarlo su un URL segnaposto che restituisca 200, ma il campo deve essere presente.

D: Devo passare le voci dell'ordine al Gestore dei pagamenti? R: No. Il Gestore dei pagamenti si occupa solo del pagamento: accetta un prezzo fisso. Le voci dell'ordine appartengono all'API degli ordini di YoPlanning (/order-validation).

D: Il prezzo è espresso in centesimi o nell'unità principale della valuta? R: Nell'unità principale. Per l'EUR, inviare 196.00, non 19600.

Ultimo aggiornamento