GALANTHUS / ABI FUNCTION REFERENCE
gln_submit_batch_transfer
Declared in <galanthus/c_api/gln_capi.h>.
GLN_API gln_status_t GLN_CALL gln_submit_batch_transfer(
gln_backend_t* in_backend,
gln_batch_transfer_request_builder_t* in_request,
gln_backend_result_t** out_result);
Purpose
gln_submit_batch_transfer submits a SEPA transfer batch through a FinTS or EBICS backend and returns a gln_backend_result_t envelope.
Backend support is operation-specific. Use gln_check_backend_operation_support to check whether a backend supports this operation before calling it. Unsupported operations return an envelope whose status is GLN_ERR_NOT_SUPPORTED.
When To Use
Use this operation for transfer batches whose items share a source account.
FinTS may require TAN, decoupled approval, or VoP confirmation and may expose item-level result rows on success. EBICS success submissions expose order/provider status and no item-level results.
Call Contract
GLN_OK from the function means an envelope was produced in *out_result; it does not mean the backend operation succeeded. Inspect the envelope with gln_get_backend_result_outcome, gln_get_backend_result_status, and gln_get_backend_result_kind.
out_result == NULL is the no-envelope invalid-argument case. In that case the function returns GLN_ERR_INVALID_ARG directly.
Build the request with gln_batch_transfer_request_builder_t. Set source identity, optional requested_execution_date_or_null, and single_booking with gln_batch_transfer_request_header_t initialized by gln_default_batch_transfer_request_header; add each gln_batch_transfer_item_t with gln_add_batch_transfer_request_item. gln_default_batch_transfer_item defaults currency to EUR; header and item values are copied into the builder.
The parameter table is binding for required handles and output slots.
Return
Returns GLN_OK when the call produced a gln_backend_result_t envelope in out_result. Operation success, caller action, provider rejection, and operation errors are reported inside that envelope.
| Type | Nullability | Ownership |
|---|---|---|
gln_status_t | value | value |
Parameters
| Name | Direction | Type | Nullability | Ownership |
|---|---|---|---|---|
in_backend | input | gln_backend_t* | nonnull | borrowed |
in_request | input | gln_batch_transfer_request_builder_t* | nonnull | borrowed |
out_result | output | gln_backend_result_t** | nonnull | transferred_out |
Success Result
Successful operation envelopes have outcome GLN_BACKEND_OUTCOME_SUCCESS, status GLN_OK, and kind GLN_BACKEND_RESULT_KIND_BATCH_TRANSFER_SUBMISSION.
Borrow the typed success view with gln_get_backend_result_batch_transfer_submission.
Use gln_get_backend_result_batch_transfer_submission only when the envelope outcome is GLN_BACKEND_OUTCOME_SUCCESS and the kind is GLN_BACKEND_RESULT_KIND_BATCH_TRANSFER_SUBMISSION.
Action-required envelopes carry interrupt details and a continuation instead of this typed success view. Resume the operation and read the accessor only after a success envelope is produced.
FinTS success submissions expose status, transaction count, control sum, and may expose item-level results; they return NULL for the submission ID and expose no provider-status rows. EBICS success submissions expose status, optional order ID, transaction count, control sum, and EBICS provider-status rows; they expose no item-level results.
Outcomes
GLN_BACKEND_OUTCOME_SUCCESS: read theGLN_BACKEND_RESULT_KIND_BATCH_TRANSFER_SUBMISSIONtyped view.GLN_BACKEND_OUTCOME_ACTION_REQUIRED: FinTS batch-transfer flows can require caller action, usually a TAN, decoupled step, or VoP confirmation. Inspectgln_get_backend_result_interrupt_info, take the continuation withgln_take_backend_result_continuation, and resume withgln_resume_continuation.GLN_BACKEND_OUTCOME_REJECTED: inspectgln_get_backend_result_statusandgln_get_backend_result_errorfor provider rejection details.GLN_BACKEND_OUTCOME_ERROR: inspectgln_get_backend_result_statusandgln_get_backend_result_error. Other backends use this outcome with statusGLN_ERR_NOT_SUPPORTED.
Ownership And Lifetime
The envelope returned through out_result is caller-owned and must be released with gln_destroy_backend_result.
Typed views, result rows or fields, borrowed strings, and the JSON string are borrowed from the envelope. They become invalid when the envelope is destroyed. Copy strings or row data before destroying the envelope when the caller needs to keep them.
For action-required envelopes, gln_get_backend_result_interrupt_info returns borrowed interrupt details. gln_take_backend_result_continuation transfers continuation ownership to the caller; destroy that continuation with gln_destroy_continuation after it has been saved or resumed.
Related Topics
See Also
gln_submit_transfergln_get_backend_result_outcomegln_get_backend_result_statusgln_get_backend_result_kindgln_get_backend_result_batch_transfer_submissiongln_get_batch_transfer_submission_statusgln_get_batch_transfer_submission_item_results_countgln_get_batch_transfer_submission_provider_status_countgln_get_backend_result_interrupt_infogln_take_backend_result_continuationgln_resume_continuationgln_get_backend_result_errorgln_destroy_backend_resultgln_check_backend_operation_support- ABI function index