openapi: 3.1.0 info: title: LibEuFin Nexus API description: "Taler wire gateway, wire transfer gateway, revenue, and observability\ \ APIs for LibEuFin Nexus" version: v1.5.0-git-19693d00 externalDocs: url: / servers: - url: / description: Same host tags: [] paths: /taler-wire-gateway/config: get: tags: - Wire Gateway description: Get the configuration of the wire gateway operationId: getWireGatewayConfig parameters: [] responses: "200": description: Configuration of the wire gateway headers: {} content: application/json: schema: $ref: "#/components/schemas/WireGatewayConfig" deprecated: false /taler-wire-gateway/transfer: post: tags: - Wire Gateway description: Initiate a wire transfer operationId: createTransfer parameters: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/TransferRequest" required: false responses: "200": description: Transfer initiated successfully headers: {} content: application/json: schema: $ref: "#/components/schemas/TransferResponse" "409": description: Request UID or WTID already used headers: {} deprecated: false security: - bearerAuth: [] - basicAuth: [] /taler-wire-gateway/transfers: get: tags: - Wire Gateway description: List wire transfers operationId: listTransfers parameters: - name: start in: query description: Row ID to start from (legacy alias for offset) required: false deprecated: false explode: false schema: type: integer format: int64 title: Long - name: offset in: query description: Row ID to start from required: false deprecated: false explode: false schema: type: integer format: int64 title: Long - name: delta in: query description: Number of results to return (legacy alias for limit) required: false deprecated: false explode: false schema: type: integer format: int32 title: Int - name: limit in: query description: Number of results to return. Negative for descending order. Max 1024 required: false deprecated: false explode: false schema: type: integer format: int32 title: Int - name: status in: query description: Filter by transfer status required: false deprecated: false explode: false schema: type: string title: String responses: "200": description: List of transfers headers: {} content: application/json: schema: $ref: "#/components/schemas/TransferList" "204": description: No transfers found headers: {} deprecated: false security: - bearerAuth: [] - basicAuth: [] /taler-wire-gateway/transfers/{ROW_ID}: get: tags: - Wire Gateway description: Get details of a specific wire transfer operationId: getTransfer parameters: - name: ROW_ID in: path description: Row ID of the transfer required: true deprecated: false explode: false schema: type: integer format: int64 title: Long responses: "200": description: Transfer details headers: {} content: application/json: schema: $ref: "#/components/schemas/TransferStatus" "404": description: Transfer not found headers: {} deprecated: false security: - bearerAuth: [] - basicAuth: [] /taler-wire-gateway/history/incoming: get: tags: - Wire Gateway description: Get incoming transaction history operationId: getIncomingHistory parameters: - name: start in: query description: Row ID to start from (legacy alias for offset) required: false deprecated: false explode: false schema: type: integer format: int64 title: Long - name: offset in: query description: Row ID to start from required: false deprecated: false explode: false schema: type: integer format: int64 title: Long - name: delta in: query description: Number of results to return (legacy alias for limit) required: false deprecated: false explode: false schema: type: integer format: int32 title: Int - name: limit in: query description: Number of results to return. Negative for descending order. Max 1024 required: false deprecated: false explode: false schema: type: integer format: int32 title: Int - name: long_poll_ms in: query description: Long-polling timeout in milliseconds (legacy alias for timeout_ms) required: false deprecated: false explode: false schema: type: integer format: int64 title: Long - name: timeout_ms in: query description: Long-polling timeout in milliseconds. Max 3600000 (1 hour) required: false deprecated: false explode: false schema: type: integer format: int64 title: Long responses: "200": description: Incoming transaction history headers: {} content: application/json: schema: $ref: "#/components/schemas/IncomingHistory" "204": description: No incoming transactions found headers: {} deprecated: false security: - bearerAuth: [] - basicAuth: [] /taler-wire-gateway/history/outgoing: get: tags: - Wire Gateway description: Get outgoing transaction history operationId: getOutgoingHistory parameters: - name: start in: query description: Row ID to start from (legacy alias for offset) required: false deprecated: false explode: false schema: type: integer format: int64 title: Long - name: offset in: query description: Row ID to start from required: false deprecated: false explode: false schema: type: integer format: int64 title: Long - name: delta in: query description: Number of results to return (legacy alias for limit) required: false deprecated: false explode: false schema: type: integer format: int32 title: Int - name: limit in: query description: Number of results to return. Negative for descending order. Max 1024 required: false deprecated: false explode: false schema: type: integer format: int32 title: Int - name: long_poll_ms in: query description: Long-polling timeout in milliseconds (legacy alias for timeout_ms) required: false deprecated: false explode: false schema: type: integer format: int64 title: Long - name: timeout_ms in: query description: Long-polling timeout in milliseconds. Max 3600000 (1 hour) required: false deprecated: false explode: false schema: type: integer format: int64 title: Long responses: "200": description: Outgoing transaction history headers: {} content: application/json: schema: $ref: "#/components/schemas/OutgoingHistory" "204": description: No outgoing transactions found headers: {} deprecated: false security: - bearerAuth: [] - basicAuth: [] /taler-wire-gateway/account/check: get: tags: - Wire Gateway description: Check account status operationId: checkAccount parameters: [] responses: "501": description: Not implemented headers: {} deprecated: false security: - bearerAuth: [] - basicAuth: [] /taler-wire-gateway/admin/add-incoming: post: tags: - Wire Gateway description: Manually add an incoming transaction operationId: addIncoming parameters: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/AddIncomingRequest" required: false responses: "200": description: Incoming transaction added headers: {} content: application/json: schema: $ref: "#/components/schemas/AddIncomingResponse" "409": description: Reserve pub already used headers: {} deprecated: false security: - bearerAuth: [] - basicAuth: [] /taler-wire-gateway/admin/add-kycauth: post: tags: - Wire Gateway description: Manually add a KYC auth incoming transaction operationId: addKycauth parameters: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/AddKycauthRequest" required: false responses: "200": description: KYC auth incoming transaction added headers: {} content: application/json: schema: $ref: "#/components/schemas/AddIncomingResponse" "409": description: Reserve pub already used headers: {} deprecated: false security: - bearerAuth: [] - basicAuth: [] /taler-wire-gateway/admin/add-mapped: post: tags: [] parameters: [] responses: {} deprecated: false /taler-prepared-transfer/config: get: tags: - Prepared Transfer description: Get the configuration of the prepared transfer API operationId: getPreparedTransferConfig parameters: [] responses: "200": description: Configuration of the prepared transfer API headers: {} content: application/json: schema: $ref: "#/components/schemas/PreparedTransferConfig" deprecated: false /taler-prepared-transfer/registration: post: tags: - Prepared Transfer description: Register a prepared transfer operationId: registerTransfer parameters: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/SubjectRequest" required: false responses: "200": description: Registration successful headers: {} content: application/json: schema: $ref: "#/components/schemas/SubjectResult" "409": description: Reserve pub or subject derivation already used headers: {} deprecated: false /taler-prepared-transfer/unregistration: post: tags: - Prepared Transfer description: Unregister a prepared subject operationId: unregisterTransfer parameters: [] responses: "204": description: Successfully unregistered headers: {} "404": description: Prepared transfer not found headers: {} "409": description: Invalid signature or timestamp too old headers: {} deprecated: false /taler-revenue/config: get: tags: - Revenue description: Get the configuration of the revenue API operationId: getRevenueConfig parameters: [] responses: "200": description: Configuration of the revenue API headers: {} content: application/json: schema: $ref: "#/components/schemas/RevenueConfig" deprecated: false /taler-revenue/history: get: tags: - Revenue description: Get incoming revenue history operationId: getRevenueHistory parameters: - name: start in: query description: Row ID to start from (legacy alias for offset) required: false deprecated: false explode: false schema: type: integer format: int64 title: Long - name: offset in: query description: Row ID to start from required: false deprecated: false explode: false schema: type: integer format: int64 title: Long - name: delta in: query description: Number of results to return (legacy alias for limit) required: false deprecated: false explode: false schema: type: integer format: int32 title: Int - name: limit in: query description: Number of results to return. Negative for descending order. Max 1024 required: false deprecated: false explode: false schema: type: integer format: int32 title: Int - name: long_poll_ms in: query description: Long-polling timeout in milliseconds (legacy alias for timeout_ms) required: false deprecated: false explode: false schema: type: integer format: int64 title: Long - name: timeout_ms in: query description: Long-polling timeout in milliseconds. Max 3600000 (1 hour) required: false deprecated: false explode: false schema: type: integer format: int64 title: Long responses: "200": description: Incoming revenue history headers: {} content: application/json: schema: $ref: "#/components/schemas/RevenueIncomingHistory" "204": description: No revenue transactions found headers: {} deprecated: false security: - bearerAuth: [] - basicAuth: [] /taler-observability/config: get: tags: - Observability description: Get the configuration of the observability API operationId: getObservabilityConfig parameters: [] responses: "200": description: Configuration of the observability API headers: {} content: application/json: schema: $ref: "#/components/schemas/TalerObservabilityConfig" deprecated: false /taler-observability/metrics: get: tags: - Observability description: Get Prometheus metrics operationId: getMetrics parameters: [] responses: "200": description: Prometheus text format metrics headers: {} deprecated: false security: - bearerAuth: [] - basicAuth: [] components: schemas: WireGatewayConfig: type: object properties: currency: type: string title: String support_account_check: type: boolean title: Boolean name: type: string title: String version: type: string title: String required: - currency - name - support_account_check - version title: WireGatewayConfig TransferRequest: type: object properties: request_uid: type: string title: Base32Crockford64B amount: type: string title: TalerAmount exchange_base_url: type: string title: BaseURL wtid: type: string title: Base32Crockford32B credit_account: type: string title: Payto metadata: type: string title: String required: - amount - credit_account - exchange_base_url - request_uid - wtid title: TransferRequest Timestamp: type: object properties: t_s: $ref: "#/components/schemas/JsonElement" required: - t_s title: Timestamp JsonElement: type: object properties: {} title: JsonElement TransferResponse: type: object properties: timestamp: $ref: "#/components/schemas/Timestamp" row_id: type: integer format: int64 title: Long required: - row_id - timestamp title: TransferResponse TransferListStatus: type: object properties: row_id: type: integer format: int64 title: Long status: $ref: "#/components/schemas/TransferStatusState" amount: type: string title: TalerAmount credit_account: type: string title: String timestamp: $ref: "#/components/schemas/Timestamp" required: - amount - credit_account - row_id - status - timestamp title: TransferListStatus TransferStatusState: type: string enum: - pending - transient_failure - permanent_failure - success title: TransferStatusState TransferList: type: object properties: transfers: type: array items: $ref: "#/components/schemas/TransferListStatus" title: ArrayList debit_account: type: string title: String required: - debit_account - transfers title: TransferList TransferStatus: type: object properties: status: $ref: "#/components/schemas/TransferStatusState" status_msg: type: string title: String amount: type: string title: TalerAmount origin_exchange_url: type: string title: String metadata: type: string title: String wtid: type: string title: Base32Crockford32B credit_account: type: string title: String timestamp: $ref: "#/components/schemas/Timestamp" required: - amount - credit_account - origin_exchange_url - status - timestamp - wtid title: TransferStatus IncomingBankTransaction: anyOf: - $ref: "#/components/schemas/KYCAUTH" - $ref: "#/components/schemas/RESERVE" - $ref: "#/components/schemas/WAD" discriminator: propertyName: type mapping: KYCAUTH: "#/components/schemas/KYCAUTH" RESERVE: "#/components/schemas/RESERVE" WAD: "#/components/schemas/WAD" title: IncomingBankTransaction KYCAUTH: type: object properties: row_id: type: integer format: int64 title: Long date: $ref: "#/components/schemas/Timestamp" amount: type: string title: TalerAmount credit_fee: type: string title: TalerAmount debit_account: type: string title: String account_pub: type: string title: Base32Crockford32B authorization_pub: type: string title: Base32Crockford32B authorization_sig: type: string title: Base32Crockford64B required: - account_pub - amount - date - debit_account - row_id title: KYCAUTH RESERVE: type: object properties: row_id: type: integer format: int64 title: Long date: $ref: "#/components/schemas/Timestamp" amount: type: string title: TalerAmount credit_fee: type: string title: TalerAmount debit_account: type: string title: String reserve_pub: type: string title: Base32Crockford32B authorization_pub: type: string title: Base32Crockford32B authorization_sig: type: string title: Base32Crockford64B required: - amount - date - debit_account - reserve_pub - row_id title: RESERVE WAD: type: object properties: row_id: type: integer format: int64 title: Long date: $ref: "#/components/schemas/Timestamp" amount: type: string title: TalerAmount credit_fee: type: string title: TalerAmount debit_account: type: string title: String origin_exchange_url: type: string title: String wad_id: type: string title: String required: - amount - date - debit_account - origin_exchange_url - row_id - wad_id title: WAD IncomingHistory: type: object properties: incoming_transactions: type: array items: $ref: "#/components/schemas/IncomingBankTransaction" title: ArrayList credit_account: type: string title: String required: - credit_account - incoming_transactions title: IncomingHistory OutgoingTransaction: type: object properties: row_id: type: integer format: int64 title: Long date: $ref: "#/components/schemas/Timestamp" amount: type: string title: TalerAmount credit_account: type: string title: String wtid: type: string title: Base32Crockford32B exchange_base_url: type: string title: String metadata: type: string title: String debit_fee: type: string title: TalerAmount required: - amount - credit_account - date - exchange_base_url - row_id - wtid title: OutgoingTransaction OutgoingHistory: type: object properties: outgoing_transactions: type: array items: $ref: "#/components/schemas/OutgoingTransaction" title: ArrayList debit_account: type: string title: String required: - debit_account - outgoing_transactions title: OutgoingHistory AddIncomingRequest: type: object properties: amount: type: string title: TalerAmount reserve_pub: type: string title: Base32Crockford32B debit_account: type: string title: Payto required: - amount - debit_account - reserve_pub title: AddIncomingRequest AddIncomingResponse: type: object properties: timestamp: $ref: "#/components/schemas/Timestamp" row_id: type: integer format: int64 title: Long required: - row_id - timestamp title: AddIncomingResponse AddKycauthRequest: type: object properties: amount: type: string title: TalerAmount account_pub: type: string title: Base32Crockford32B debit_account: type: string title: Payto required: - account_pub - amount - debit_account title: AddKycauthRequest SubjectFormat: type: string enum: - SIMPLE - URI - CH_QR_BILL title: SubjectFormat PreparedTransferConfig: type: object properties: currency: type: string title: String supported_formats: type: array items: $ref: "#/components/schemas/SubjectFormat" title: ArrayList name: type: string title: String version: type: string title: String required: - currency - name - supported_formats - version title: PreparedTransferConfig TransferType: type: string enum: - reserve - kyc title: TransferType PublicKeyAlg: type: string enum: - EdDSA title: PublicKeyAlg SubjectRequest: type: object properties: credit_amount: type: string title: TalerAmount type: $ref: "#/components/schemas/TransferType" alg: $ref: "#/components/schemas/PublicKeyAlg" account_pub: type: string title: Base32Crockford32B authorization_pub: type: string title: Base32Crockford32B authorization_sig: type: string title: Base32Crockford64B recurrent: type: boolean title: Boolean required: - account_pub - alg - authorization_pub - authorization_sig - credit_amount - recurrent - type title: SubjectRequest TransferSubject: anyOf: - $ref: "#/components/schemas/CH_QR_BILL" - $ref: "#/components/schemas/SIMPLE" - $ref: "#/components/schemas/URI" discriminator: propertyName: type mapping: CH_QR_BILL: "#/components/schemas/CH_QR_BILL" SIMPLE: "#/components/schemas/SIMPLE" URI: "#/components/schemas/URI" title: TransferSubject CH_QR_BILL: type: object properties: qr_reference_number: type: string title: String credit_amount: type: string title: TalerAmount required: - credit_amount - qr_reference_number title: CH_QR_BILL SIMPLE: type: object properties: subject: type: string title: String credit_amount: type: string title: TalerAmount required: - credit_amount - subject title: SIMPLE URI: type: object properties: uri: type: string title: String credit_amount: type: string title: TalerAmount required: - credit_amount - uri title: URI SubjectResult: type: object properties: subjects: type: array items: $ref: "#/components/schemas/TransferSubject" title: ArrayList expiration: $ref: "#/components/schemas/Timestamp" required: - expiration - subjects title: SubjectResult RevenueConfig: type: object properties: currency: type: string title: String name: type: string title: String version: type: string title: String required: - currency - name - version title: RevenueConfig RevenueIncomingBankTransaction: type: object properties: row_id: type: integer format: int64 title: Long date: $ref: "#/components/schemas/Timestamp" amount: type: string title: TalerAmount credit_fee: type: string title: TalerAmount debit_account: type: string title: String subject: type: string title: String required: - amount - date - debit_account - row_id - subject title: RevenueIncomingBankTransaction RevenueIncomingHistory: type: object properties: incoming_transactions: type: array items: $ref: "#/components/schemas/RevenueIncomingBankTransaction" title: ArrayList credit_account: type: string title: String required: - credit_account - incoming_transactions title: RevenueIncomingHistory TalerObservabilityConfig: type: object properties: name: type: string title: String version: type: string title: String required: - name - version title: TalerObservabilityConfig examples: {} securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: token basicAuth: type: http description: "HTTP Basic authentication, supported only on compatibility-enabled\ \ endpoints" scheme: Basic webhooks: {}