FSP Standalone
Nella modalità standalone è responsabilità dell'aggregatore comunicare gli attributi del Money-In e specificare l'allocazione delle relative quote tra i vari client. In questa pagina descriveremo come gestire il processo tramite API.
Creazione della richiesta di money-in
Il servizio POST CreateMoney-in consente all'aggregatore di comunicare a FSP un accredito atteso, ovvero i dati necessari per verificare i movimenti sul conto dell'aggregatore. Di seguito un esempio di utilizzo di questo servizio:
Esempio di input:
I dettagli dei campi inclusi nella richiesta sono spiegati nella documentazione tecnica del servizio.
Di seguito alcune note sull'utilizzo del servizio:
- Le valute utilizzate devono essere tra quelle supportate da FSP.
- Tutti gli importi nella richiesta
CreateMoney-indevono utilizzare la stessa valuta. - FSP non supporta la conversione valutaria.
- L'attributo
reconciliationCallbackUri, se fornito dal chiamante, consente a FSP di inviare una callback al sistema del client per notificare l'esito della riconciliazione contabile. - Il servizio può restituire come esito
OKoKO. OKsignifica che il processo di riconciliazione è stato preso in carico; se ha esito positivo, FSP avvia il Cashin e il Cashout come specificato nel contratto con i client.- I client sono identificati tramite la propria Partita IVA.
- Sono ammessi solo identificativi di client attivi nel dominio dell'aggregatore.
- I
clientIdnon devono essere ripetuti all'interno della richiesta. - La richiesta
createMoney-inè identificata dal campocreditTransferId. - Il valore di
creditTransferIdpuò essere riutilizzato solo dopo che la richiesta precedente ha completato la riconciliazione con esitoKO.
Processo di riconciliazione FSP
Una volta acquisiti i dati dell'accredito atteso, FSP esamina gli accrediti osservati ricevuti sul conto dell'aggregatore. La riconciliazione viene eseguita tra un accredito atteso e un accredito osservato che condividono lo stesso identificativo univoco, transferId. La riconciliazione verifica quindi che i due accrediti corrispondano secondo le seguenti regole:
- L'acquirer associato all'accredito atteso deve essere correttamente identificato e riconosciuto.
- Entrambi gli accrediti devono essere denominati nella stessa valuta.
- Gli importi dell'accredito atteso e di quello osservato devono essere identici.
Il processo di riconciliazione può avere tre esiti:
OK: La riconciliazione è stata completata con successo.KO: Almeno una regola di riconciliazione è stata violata; in questo caso, la richiesta può essere reinviata con i dati corretti.IN_PROGRESS: La riconciliazione è ancora in corso, poiché non tutti i dati richiesti relativi agli accrediti sono ancora disponibili.
Quando la riconciliazione viene infine completata, l'esito viene automaticamente aggiornato a OK o KO.
Callback di riconciliazione
FSP può inviare una callback al chiamante per notificare l'esito del processo di riconciliazione. Ciò avviene se il campo reconciliationCallbackUri è stato fornito nella richiesta POST CreateMoney-in. La struttura del payload della callback è illustrata di seguito.
{
"reconciliationOutcome": {
"creditTransferId": "TRN/CRO",
"reconciliationStatus": "OK||KO||IN_PROGRESS",
"moneyIn": {
"amount": {
"value": 100,
"currency": "EUR"
}
},
"observedTransfer": {
"amount": {
"value": 100,
"currency": "EUR"
}
}
}
}
La tabella seguente descrive la struttura del payload della callback.
| Campo | Tipo | Obbligatorio | Utilizzo |
|---|---|---|---|
| reconciliationOutcome | Object | Y | Contenitore dei dati di risposta. |
| reconciliationOutcome.creditTransferId | String | Y | Identificativo del bonifico bancario, TRN/CRO, condiviso dall'accredito atteso e da quello osservato. |
| reconciliationOutcome.reconciliationStatus | Enum: OK, KO, IN_PROGRESS | Y | Stato della riconciliazione. |
| reconciliationOutcome.moneyIn | Object | Y | Dettagli dell'importo. |
| reconciliationOutcome.moneyIn.amount | Object | Y | Importo dell'accredito. |
| reconciliationOutcome.moneyIn.amount.value | Number, due decimali | Y | Tracciamento del ciclo di vita del conto. |
| reconciliationOutcome.moneyIn.amount.currency | String ISO 4212 | Y | Codice valuta, 3 caratteri. |
| reconciliationOutcome.observedTransfer | Object | Y | Descrizione dell'accredito osservato. |
| reconciliationOutcome.observedTransfer.amount | Object | N | Dettagli dell'importo, se disponibili. |
| reconciliationOutcome.observedTransfer.amount.value | Number, due decimali | N | Dettagli dell'importo, se disponibili. |
| reconciliationOutcome.observedTransfer.amount.currency | String ISO 4212 | N | Codice valuta, se disponibile. |
Lo stato IN_PROGRESS viene riportato dalla callback quando la riconciliazione non è stata completata entro la soglia temporale definita.
Aspetti tecnici relativi all'invocazione della callback
La callback viene inviata utilizzando il metodo POST all'endpoint specificato nella richiesta POST CreateMoneyIn. In caso di fallimento dell'invocazione, FSP applica le proprie politiche di retry. La callback viene invocata senza alcun meccanismo di autorizzazione; tuttavia, Fabrick può fornire l'elenco degli indirizzi IP da inserire in whitelist.